#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |