Submission #283316

#TimeUsernameProblemLanguageResultExecution timeMemory
283316sofapudenCave (IOI13_cave)C++14
100 / 100
278 ms632 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N) { int v[N] = {0}; vector<pair<int,int>> known(N,{-1,-1}); for(int i = 1; i <= N; ++i){ int lo = 0, hi = N-1; int x = tryCombination(v); if(x == -1)x = N; x = min(x, i); while(lo < hi){ int mid = (lo+hi)/2; for(int j = lo; j <= mid; ++j){ v[j] = (known[j].second != -1 ? known[j].first : v[j]^1); } int x2 = tryCombination(v); if(x2 == -1)x2 = i; x2 = min(x2, i); if(x == x2){ lo = mid+1; } else hi = mid; x = x2; } known[lo] = {x == i ? v[lo] : v[lo]^1, i-1}; v[lo] = known[lo].first; } int out1[N], out2[N]; for(int i = 0; i < N; ++i){ out1[i] = known[i].first; out2[i] = known[i].second; } answer(out1, out2); }
#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...