Submission #402728

#TimeUsernameProblemLanguageResultExecution timeMemory
402728prvocislo동굴 (IOI13_cave)C++17
100 / 100
352 ms616 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); int o = tryCombination(s); if (o == -1 || o > i) for (int j : u) s[j] ^= 1; while (u.size() > 1) { int h = u.size() / 2; vector<int> u1(u.begin(), u.begin() + h), u2(u.begin() + h, u.end()); for (int j : u1) s[j] ^= 1; int q1 = tryCombination(s); if (q1 == -1) q1 = n; if (q1 > i) { u = u1; for (int j : u1) s[j] ^= 1; } else u = u2; } d[u[0]] = 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...