Submission #402720

#TimeUsernameProblemLanguageResultExecution timeMemory
402720prvocisloCave (IOI13_cave)C++17
51 / 100
208 ms468 KiB
#include "cave.h" #include <vector> using namespace std; void answer(int S[], int D[]); int tryCombination(int S[]); int s[5000], d[5000]; void exploreCave(int n) { for (int i = 0; i < n; i++) s[i] = 0, d[i] = -1; vector<int> u; // switche o ktorych nevieme ze ktore dvere ovladaju for (int i = 0; i < n; i++) { u.clear(); for (int sw = 0; sw < n; sw++) if (d[sw] == -1) u.push_back(sw); while (u.size() > 1) { int h = u.size() / 2; vector<int> u1(u.begin(), u.begin() + h), u2(u.begin() + h, u.end()); int x = tryCombination(s); if (x == -1) x = n; if (x > i) // zatvorime i-te dvere for (int j : u) s[j] ^= 1; for (int j : u1) s[j] ^= 1; int q1 = tryCombination(s); if (q1 == -1) q1 = n; if (q1 > i) u = u1; else u = u2; } d[u[0]] = i; int o = tryCombination(s); if (o == i) s[u[0]] ^= 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...