Submission #1194700

#TimeUsernameProblemLanguageResultExecution timeMemory
1194700TahirAliyevSphinx's Riddle (IOI24_sphinx)C++20
36 / 100
38 ms440 KiB
#include "sphinx.h" #include <bits/stdc++.h> using namespace std; int n; vector<int> ans; bool aske(int l, int r, int x){ vector<int> v(n); for(int i = 0; i < n; i++){ if(i & 1) v[i] = x; else v[i] = n; } for(int i = l; i <= r; i++){ if(!(i & 1)) v[i] = -1; } if(perform_experiment(v) != n) return 1; return 0; } bool asko(int l, int r, int x){ vector<int> v(n); for(int i = 0; i < n; i++){ if(i & 1) v[i] = n; else v[i] = x; } for(int i = l; i <= r; i++){ if(i & 1) v[i] = -1; } if(perform_experiment(v) != n) return 1; return 0; } vector<int> find_colours(int N, vector<int> X, vector<int> Y){ n = N; ans.resize(n); for(int x = 0; x < n; x++){ int l = 0, r = n - 1; while(asko(l, r, x)){ while(l < r){ int mid = (l + r) / 2; if(asko(l, mid, x)) r = mid; else l = mid + 1; } ans[l] = x; l++; r = n - 1; } l = 0, r = n - 1; while(aske(l, r, x)){ while(l < r){ int mid = (l + r) / 2; if(aske(l, mid, x)) r = mid; else l = mid + 1; } ans[l] = x; l++; r = n - 1; } } 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...