Submission #1194697

#TimeUsernameProblemLanguageResultExecution timeMemory
1194697aykhnSphinx's Riddle (IOI24_sphinx)C++20
36 / 100
38 ms436 KiB
#include "sphinx.h" #include <bits/stdc++.h> using namespace std; const int MXN = 1000; vector<int> find_colours(int N, vector<int> X, vector<int> Y) { vector<int> ans(N); for (int col = 0; col < N; col++) { { vector<int> c(N, 0); for (int i = 0; i < N; i++) { if (i & 1) c[i] = col; else c[i] = -1; } int prv = -1; while (perform_experiment(c) != N) { int l = prv + 1, r = N - 1; while (l < r) { int mid = (l + r) >> 1; vector<int> q(N, 0); for (int i = 0; i < N; i++) { if (i & 1) q[i] = col; else { if (l <= i && i <= mid) q[i] = -1; else q[i] = N; } } if (perform_experiment(q) != N) r = mid; else l = mid + 1; } ans[l] = col; c[l] = N; prv = l; } } { vector<int> c(N, 0); for (int i = 0; i < N; i++) { if (!(i & 1)) c[i] = col; else c[i] = -1; } int prv = -1; while (perform_experiment(c) != N) { int l = prv + 1, r = N - 1; while (l < r) { int mid = (l + r) >> 1; vector<int> q(N, 0); for (int i = 0; i < N; i++) { if (!(i & 1)) q[i] = col; else { if (l <= i && i <= mid) q[i] = -1; else q[i] = N; } } if (perform_experiment(q) != N) r = mid; else l = mid + 1; } ans[l] = col; c[l] = N; prv = l; } } } return ans; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...