Submission #717278

#TimeUsernameProblemLanguageResultExecution timeMemory
717278JuanCave (IOI13_cave)C++14
25 / 100
825 ms588 KiB
#include<bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int N){ vector<int> unprocessed; for(int i = 0; i < N; i++) unprocessed.push_back(i); int vask[N]={}, S[N]={}; int D[N]={}; for(int i = 0; i < N; i++){ for(int x : unprocessed) vask[x] = 0; S[i] = 1; if(tryCombination(vask)!=i){ for(int x : unprocessed) vask[x] = 1; S[i] = 0; } int pos = -1; int l = 0, r = unprocessed.size()-1; while(l<=r){ int m = (l+r)>>1; for(int j = 0; j <= m; j++) vask[unprocessed[j]] = 1-vask[unprocessed[j]]; int ret = tryCombination(vask); if(ret==i) pos = m, l = m+1; else r = m-1; for(int j = 0; j <= m; j++) vask[unprocessed[j]] = 1-vask[unprocessed[j]]; } D[unprocessed[pos+1]] = i; vask[unprocessed[pos+1]] = S[i]; unprocessed.erase(unprocessed.begin()+pos+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...