Submission #993031


Source Code Expand

#pragma GCC optimize("O3")
#pragma GCC target("sse4.2")

#include <vector>
#include <queue>
#include <unordered_map>
#include <tuple>
#include <cstdio>
#include <cmath>
using namespace std;

namespace std{
	template<typename T>
	inline void hash_combine(size_t& seed, T const& v){
		seed ^= hash<T>()(v) + 0x9e3779b9 + (seed<<6) + (seed>>2);
	}
	template<typename It>
	inline size_t hash_range(It first, It last){
		size_t seed=0;
		hash_range(seed,first,last);
		return seed;
	}
	template<typename It>
	inline void hash_range(size_t& seed, It first, It last){
		for(;first!=last;++first)hash_combine(seed, *first);
	}
	template<typename A,typename B>
	class hash<pair<A,B>>{
		public:
		size_t operator()(pair<A,B> const &p) const{
			size_t seed=0;
			hash_combine(seed,p.first);
			hash_combine(seed,p.second);
			return seed;
		}
	};
}

int main(){
	long long N,A,R;
	scanf("%lld%lld",&N,&A);R=N;
	if(N>1000000)return 1;
	if(N>10000)R=sqrt(R);

	unordered_map<pair<long long,long long>,long long>m; //m<n,speed>=time
	m[{0,1}]=0;
	priority_queue<tuple<long long,long long,long long> >q;
	q.push(make_tuple(0,0,1));
	for(;!q.empty();){
		auto cur=q.top();q.pop();
		long long time=-get<0>(cur);
		long long n=get<1>(cur);
		long long speed=get<2>(cur);
		
		if(time>=R)continue;

		vector<tuple<int,int,int>> nxt={
			make_tuple(0,n,time+A),
			make_tuple(n+speed,speed,time+1)
		};
		for(auto &e:nxt){
			long long nxtn=get<0>(e);
			long long nxtspeed=get<1>(e);
			long long nxttime=get<2>(e);
			if(nxtn>=N){
				R=min(R,nxttime);
			}else if(nxttime<R && (m.find({nxtn,nxtspeed})==m.end()||m[{nxtn,nxtspeed}]>nxttime)){
				m[{nxtn,nxtspeed}]=nxttime;
				q.push(make_tuple(-nxttime,nxtn,nxtspeed));
			}
		}
	}
	printf("%lld\n",R);
}

Submission Info

Submission Time
Task E - Cookies
User leafmoon
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1815 Byte
Status WA
Exec Time 1011 ms
Memory 79240 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:41:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld%lld",&N,&A);R=N;
                         ^

Judge Result

Set Name sample dataset1 dataset2
Score / Max Score 0 / 0 0 / 500 0 / 500
Status
AC × 2
RE × 1
AC × 25
WA × 2
AC × 27
WA × 2
RE × 40
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt
dataset1 sample-01.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt
dataset2 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt, 02-23.txt, 02-24.txt, 02-25.txt, 02-26.txt, 02-27.txt, 02-28.txt, 02-29.txt, 02-30.txt, 02-31.txt, 02-32.txt, 02-33.txt, 02-34.txt, 02-35.txt, 02-36.txt, 02-37.txt, 02-38.txt, 02-39.txt, 02-40.txt
Case Name Status Exec Time Memory
01-01.txt AC 8 ms 1024 KB
01-02.txt AC 13 ms 1792 KB
01-03.txt AC 18 ms 2700 KB
01-04.txt AC 23 ms 3212 KB
01-05.txt AC 32 ms 4748 KB
01-06.txt AC 38 ms 5284 KB
01-07.txt AC 78 ms 9380 KB
01-08.txt AC 120 ms 14152 KB
01-09.txt AC 373 ms 38064 KB
01-10.txt AC 1011 ms 79112 KB
01-11.txt AC 1004 ms 79240 KB
01-12.txt WA 3 ms 256 KB
01-13.txt WA 3 ms 256 KB
01-14.txt AC 7 ms 896 KB
01-15.txt AC 7 ms 896 KB
01-16.txt AC 11 ms 1536 KB
01-17.txt AC 65 ms 9380 KB
01-18.txt AC 2 ms 256 KB
01-19.txt AC 2 ms 256 KB
01-20.txt AC 2 ms 256 KB
01-21.txt AC 2 ms 256 KB
01-22.txt AC 2 ms 256 KB
01-23.txt AC 2 ms 256 KB
01-24.txt AC 2 ms 256 KB
01-25.txt AC 2 ms 256 KB
01-26.txt AC 2 ms 256 KB
02-01.txt AC 2 ms 256 KB
02-02.txt RE 2 ms 256 KB
02-03.txt RE 2 ms 256 KB
02-04.txt RE 2 ms 256 KB
02-05.txt RE 2 ms 256 KB
02-06.txt RE 2 ms 256 KB
02-07.txt RE 2 ms 256 KB
02-08.txt RE 2 ms 256 KB
02-09.txt RE 2 ms 256 KB
02-10.txt RE 2 ms 256 KB
02-11.txt RE 2 ms 256 KB
02-12.txt RE 2 ms 256 KB
02-13.txt RE 2 ms 256 KB
02-14.txt RE 2 ms 256 KB
02-15.txt RE 2 ms 256 KB
02-16.txt RE 2 ms 256 KB
02-17.txt RE 2 ms 256 KB
02-18.txt RE 2 ms 256 KB
02-19.txt RE 2 ms 256 KB
02-20.txt RE 2 ms 256 KB
02-21.txt RE 2 ms 256 KB
02-22.txt RE 2 ms 256 KB
02-23.txt RE 2 ms 256 KB
02-24.txt RE 2 ms 256 KB
02-25.txt RE 2 ms 256 KB
02-26.txt RE 2 ms 256 KB
02-27.txt RE 2 ms 256 KB
02-28.txt RE 2 ms 256 KB
02-29.txt RE 2 ms 256 KB
02-30.txt RE 2 ms 256 KB
02-31.txt RE 2 ms 256 KB
02-32.txt RE 2 ms 256 KB
02-33.txt RE 2 ms 256 KB
02-34.txt RE 2 ms 256 KB
02-35.txt RE 2 ms 256 KB
02-36.txt RE 2 ms 384 KB
02-37.txt RE 2 ms 256 KB
02-38.txt RE 2 ms 256 KB
02-39.txt RE 2 ms 256 KB
02-40.txt RE 2 ms 256 KB
sample-01.txt AC 2 ms 256 KB
sample-02.txt RE 2 ms 256 KB
sample-03.txt AC 17 ms 2444 KB