Submission #1305695

#TimeUsernameProblemLanguageResultExecution timeMemory
1305695AzeTurk810동굴 (IOI13_cave)C++20
100 / 100
335 ms1136 KiB
#include "cave.h" #include <cassert> #include <iostream> #include <vector> void exploreCave(int N) { int ans[N] , have[N]; int S[N] , D[N] , res = 0; std::vector< int > A; for(int i = 0;i < N;i++) S[i] = D[i] = 0; for(int i = 0;i < N;i++) D[i] = -1; for(int i =0 ;i < N;i++) { A.push_back(i); bool t = tryCombination(S) == i; int l = 0, r =N - 1, mid; res = -1; while (l <= r) { std::cerr << l << ' ' << r << std::endl; mid = (l + r) >> 1; for(int j = l;j <= mid;j++) { if(D[j] == -1) { S[j] = 1 - S[j]; } } if((tryCombination(S) == i) == t) { l = mid + 1; } else { res = mid; r = mid - 1; } for(int j = l;j <= mid;j++) { if(D[j] == -1) S[j] = 1 - S[j]; } } if(res == -1) { res = l -1; } assert(res != -1); if(t) S[res] = 1 - S[res]; D[res] = i; } 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...