Submission #971351

#TimeUsernameProblemLanguageResultExecution timeMemory
971351AcanikolicCave (IOI13_cave)C++14
51 / 100
173 ms600 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int N) { int S[N],D[N]; for(int i = 0; i < N; i++) { S[i] = 0; D[i] = -1; } for(int Q = 0; Q < N; Q++) { int X = tryCombination(S); int l = 0, r = N - 1,ans = -1; while(l <= r) { int mid = (l + r) / 2; for(int i = l; i <= mid; i++) if(D[i] == -1) S[i] ^= 1; int Y = tryCombination(S); for(int i = l; i <= mid; i++) if(D[i] == -1) S[i] ^= 1; if(X != Y) { ans = mid; r = mid - 1; }else { l = mid + 1; } } assert(ans != -1); D[ans] = X; S[ans] ^= 1; int yy = tryCombination(S); if(X == -1) { D[ans] = yy; S[ans] ^= 1; } else if(yy < X && yy != -1) { D[ans] = yy; S[ans] ^= 1; } } answer(S,D); }
#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...