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;
int z,x,d,e,ka[10],zx,m,la[100009];
vector <int> pas,v[100009];
bool bo[100009];
void dfs(int w){
if(ka[zx]==0) return;
bo[w]=1;
pas[w]=zx;
ka[zx]--;
if(ka[zx]==0) return;
for(vector <int>::iterator it=v[w].begin(); it!=v[w].end(); it++){
if(bo[(*it)]==1) continue;
dfs((*it));
if(ka[zx]==0) return;
}
}
vector <int> find_split(int n, int a, int b, int c, vector <int> p, vector <int> q){
pas.resize(n);
ka[1]=a;
ka[2]=b;
ka[3]=c;
zx=0;
m=p.size();
for(int h=0; h<m; h++){
v[p[h]].push_back(q[h]);
v[q[h]].push_back(p[h]);
}
for(int h=0; h<n; h++) la[h]=h;
zx=-1;
for(int h=0; h<n; h++){
if(v[h].size()==1){
zx++;
swap(la[zx],la[h]);
}
}
zx=0;
for(int h=0; h<n; h++){
if(bo[la[h]]==0){
zx++;
dfs(la[h]);
}
}
return pas;
}
# | 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... |