Submission #1310770

#TimeUsernameProblemLanguageResultExecution timeMemory
1310770georgeckitoCave (IOI13_cave)C++20
0 / 100
263 ms628 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; #define pb push_back void exploreCave(int N){ vector<int> S(N, -67); vector<int> d(N, -67); for(int i = 0; i < N; i++){ vector<int> v; for(int i = 0; i < N; i++) if(S[i] < 0) v.pb(i); int fix[N]; for(int i = 0; i < N; i++) { if(S[i] < 0) fix[i] == 0; else fix[i] = S[i]; } int x = tryCombination(fix); if(v.size() == 1){ if(x < 0 || x > i) S[v[0]] = 0; else S[v[0]] = 1; d[v[0]]=i; return; } vector<int> vv = v; while(vv.size() > 1){ int m = vv.size()/2; vector<int> l(vv.begin(), vv.begin()+m); vector<int> r(vv.begin()+m, vv.end()); for(int i = 0; i < N; i++) { if(S[i] < 0) { if(x < 0 || x > i) fix[i] = 1; else fix[i] = 0; } else fix[i] = S[i]; } for(int i : l) { if(x < 0 || x > i) fix[i] = 0; else fix[i] = 1; } int xx = tryCombination(fix); if(xx < 0 || xx > i) vv = l; else vv = r; } int sw = vv[0]; if(x < 0 || x > i) S[vv[0]] = 0; else S[vv[0]] = 1; d[sw]=i; } int SSS[N], DDD[N]; for(int i = 0; i < N; i++) { SSS[i]=S[i]; DDD[i]=d[i]; } answer(SSS, DDD); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...