Submission #1242454

#TimeUsernameProblemLanguageResultExecution timeMemory
1242454mychecksedadSphinx's Riddle (IOI24_sphinx)C++20
24 / 100
35 ms916 KiB
#include "sphinx.h" #include <bits/stdc++.h> using namespace std; #define vi vector<int> #define pb push_back #define pii pair<int,int> #define ff first #define ss second #define all(x) x.begin(),x.end() #define ll long long int const int N = 250; vi g[N]; int ask(vi E){ return perform_experiment(E); } std::vector<int> find_colours(int n, std::vector<int> X, std::vector<int> Y) { for(int i = 0; i < n; ++i) g[i].clear(); for(int i = 0; i < n - 1; ++i) g[X[i]].pb(Y[i]), g[Y[i]].pb(X[i]); vi col(n, -1); for(int i = 0; i < n; ++i){ vi E(n); int cnt = 0; for(int j = 0; j < n; ++j) if(i != j) E[j] = cnt++; E[i] = -1; if(ask(E) == n){ col[i] = n-1; }else{ // we gotta binary serach 0...n-2 int l = 0, r = n-2, res=n-2; while(l <= r){ int mid = l+r>>1; vi EE(n, n); int cnt = 0; for(int j = 0; cnt <= mid; ++j) if(i != j) EE[j] = cnt++; EE[i] = -1; if(ask(EE) < 3 + mid){ res = mid; r = mid - 1; }else{ l = mid + 1; } } col[i] = res; } } return col; }
#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...