#include "sphinx.h"
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int msz = 256;
int perform_experiment(vector<int> E);
vector<vector<int>> comp;
vector<int> g[msz] , cmp(msz , -1);
int n , color[msz];
vector<bool> w;
void dfs(int v){
w[v] = 1;
for(auto to : g[v]){
if((! w[to]) and color[v] == color[to]){
dfs(to);
}
}
}
int expected(int l , int r , int p){
w = vector<bool> (n , 0);
for(int i = 0;i < n; ++ i){
if(cmp[i] >= l and cmp[i] <= r) color[i] = cmp[i];
else color[i] = n;
}
color[p] = color[g[p][0]];
int sm = 0;
for(int i = 0;i < n; ++ i){
if(! w[i]){
w[i] = 1;
sm ++;
dfs(i);
}
}
return sm;
}
bool ask(int l , int r , int p){
vector<int> qu(n , n);
qu[p] = -1;
for(int j = l;j <= r; ++ j){
for(auto to : comp[j]){
qu[to] = -1;
}
}
int cnt = perform_experiment(qu);
//cout << l << ' ' << r << ' ' << expected(l , r , p) << ' ' << cnt << '\n';
if(expected(l , r , p) == cnt) return true;
return false;
}
vector<int> find_colours(int N, std::vector<int> x, std::vector<int> y) {
int m = x.size();
n = N;
for(int i = 0;i < m; ++ i){
g[x[i]].push_back(y[i]);
g[y[i]].push_back(x[i]);
}
comp.push_back({0});
cmp[0] = 0;
//ask(0 , 0 , 1);
for(int i = 1;i < n; ++ i){
if(! ask(0 , comp.size() - 1 , i)){
comp.push_back({i});
cmp[i] = comp.size() - 1;
continue ;
}
int l = 0;
int r = comp.size();
while(l + 1 < r){
int mid = (l + r) / 2;
if(ask(mid , r - 1 , i)) l = mid;
else r = mid;
}
comp[l].push_back(i);
cmp[i] = l;
}
vector<int> G(n);
for(int i = 0;i < comp.size(); ++ i){
for(auto to : comp[i]){
G[to] = i;
}
}
return G;
}
# | 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... |