Submission #156903

#TimeUsernameProblemLanguageResultExecution timeMemory
156903TAISA_Cave (IOI13_cave)C++14
100 / 100
948 ms640 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N) { int s[5000], d[5000]; for (int i = 0; i < N; i++) { s[i] = 0; d[i] = -1; } for (int i = 0; i < N; i++) { vector<int> v; for (int j = 0; j < N; j++) { if (d[j] == -1) { v.push_back(j); } } int t = tryCombination(s); int ng = -1, ok = v.size(); --ok; while (ok - ng > 1) { int mid = (ok + ng) / 2; for (int j = 0; j <= mid; j++) { s[v[j]] ^= 1; } int r = tryCombination(s); if (t == i) { if (r == i) { ng = mid; } else { ok = mid; } } else { if (r == i) { ok = mid; } else { ng = mid; } } for (int j = 0; j <= mid; j++) { s[v[j]] ^= 1; } } d[v[ok]] = i; if (t == i) { s[v[ok]] ^= 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...