#include "sphinx.h"
#include <bits/stdc++.h>
using namespace std;
#define NL "\n"
#define EL cout << NL
#define FOR(i,n) for (long long i = 0; i < (n); i++)
#define FORS(i,s,n) for (long long i = (s); i < (n); i++)
#define FORR(i,n) for (long long i = (n)-1; i >= 0; i--)
#define PRINTV(v) for (auto a: v) {cout << a << " ";} EL;
#define PRINTVV(v) for (auto a: v) {PRINTV(a);}
#define f first
#define s second
#define all(v) (v).begin(),(v).end()
typedef vector<int> vi;
typedef long long ll;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef pair<ll,ll> pl;
typedef vector<pl> vpl;
typedef vector<vpl> vvpl;
void dfs(ll u, vl& visited, vvl& g) {
visited[u] = true;
for (auto v: g[u]) {
if (visited[v]) continue;
dfs(v,visited,g);
}
}
std::vector<int> find_colours(int n, std::vector<int> x, std::vector<int> y) {
vl adj(n);
ll m = x.size();
vvl g(n);
FOR(i,m) {
adj[x[i]] = y[i];
adj[y[i]] = x[i];
g[x[i]].push_back(y[i]);
g[y[i]].push_back(x[i]);
}
vector<int> ans(n);
FOR(u,n) {
ll v = adj[u];
FOR(c,n) {
vi e(n,n);
e[u] = -1;
e[v] = c;
ll r = perform_experiment(e);
ll target = 1;
vl visited(n);
visited[u] = visited[v] = 1;
FOR(i,n) {
if (visited[i]) continue;
target++;
dfs(i,visited,g);
}
if (r == target) {
ans[u] = c;
break;
}
}
}
return ans;
}
# | 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... |