Submission #1241191

#TimeUsernameProblemLanguageResultExecution timeMemory
1241191MarwenElarbiSphinx's Riddle (IOI24_sphinx)C++20
28.50 / 100
28 ms920 KiB
#include <bits/stdc++.h> #include "sphinx.h" using namespace std; #define fi first #define se second #define pb push_back const int nax = 5e5+5; std::vector<int> find_colours(int N, std::vector<int> X, std::vector<int> Y) { vector<int> parent(N); vector<int> cur; cur.push_back(0); vector<int> component[N]; component[0].push_back(0); for (int i = 0; i < N; ++i) parent[i]=i; for (int i = 1; i < N; ++i) { int l=-1; int r=cur.size(); while(r-l>1){ int mid=(r+l)/2; vector<int> cnt(N,N); cnt[i]=-1; for (int j = 0; j <= mid; ++j) { for(auto u : component[cur[j]]) cnt[u]=-1; } bool test=false; for(auto u : cnt) if(u==N) test=true; /*for(auto u:cnt) cout <<u<<" "; cout <<endl; cout << perform_experiment(cnt)-(test)<<" "<<mid+1<<endl;*/ if(perform_experiment(cnt)-(test)<=mid+1) r=mid; else l=mid; } if(r==cur.size()){ component[i].push_back(i); cur.push_back(i); } else { parent[i]=cur[r]; component[cur[r]].push_back(i); } } return parent; }
#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...