#include "sphinx.h"
using namespace std;
vector<int> adj[5000];
vector<int> colors;
void dfs(int u, int C) {
    colors[u] = C;
    for (int v : adj[u]) if (colors[v] == -1) {
        dfs(v, C);
    }
}
vector<int> find_colours(int N, vector<int> X, vector<int> Y) {
    int M = X.size();
    for (int i = 0; i < M; i++) {
        vector<int> query(N, N);
        query[X[i]] = query[Y[i]] = -1;
        if (perform_experiment(query) > 2) {
            adj[X[i]].push_back(Y[i]);
            adj[Y[i]].push_back(X[i]);
        }
    }
    colors.resize(N, -1);
    int col = 0;
    for (int i = 0; i < N; i++) if (colors[i] == 0) {
        dfs(i, col++);
    }
    return colors;
}
| # | 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... |