Submission #281736

#TimeUsernameProblemLanguageResultExecution timeMemory
281736amoo_safarCave (IOI13_cave)C++17
100 / 100
666 ms720 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; const int N = 5010; int n, S[N], D[N]; int Ask(){ int res = tryCombination(S); //cerr << "R : " << res << '\n'; if(res == -1) return n; return res; } void exploreCave(int _n) { n = _n; vector<int> V(n); iota(V.begin(), V.end(), 0); for(int it = 1; it <= n; it++){ for(auto x : V) S[x] = 0; int cor = 0; if(Ask() < it) cor = 1; int L = -1, R = V.size() - 1; int mid; while(L + 1 < R){ mid = (L + R) >> 1; for(int i = 0; i <= mid; i++) S[V[i]] = cor; for(int i = mid + 1; i < (int) V.size(); i++) S[V[i]] = cor ^ 1; if(Ask() >= it) R = mid; else L = mid; } //cerr << "##\n"; S[V[R]] = cor; D[V[R]] = it - 1; V.erase(V.begin() + R); } 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...