This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
vector <vector<int>> v;
vector <int> g, ans, pass;
void dfs(int node, int cont, int group)
{
ans[node] = group; cont++;
if(cont == g[group])
{
cont = 0;
group++;
}
pass[node] = 1;
for(auto& u : v[node])
{
if(!pass[u]) dfs(u, cont, group);
}
return;
}
vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q)
{
int m = p.size(); ans.assign(n, 3); pass.assign(n, 0);
v.assign(n + 1, vector <int> ());
vector <bool> subtask(5, 1);
for(int i = 0; i < m; i++)
{
v[p[i]].push_back(q[i]);
v[q[i]].push_back(p[i]);
if(v[p[i]].size() > 2) subtask[0] = false;
if(v[q[i]].size() > 2) subtask[0] = false;
}
if(subtask[0])
{
g.assign(4, 0); g[1] = a; g[2] = b; g[3] = c;
dfs(0, 0, 1);
return ans;
}
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... |