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<iostream>
#include<vector>
using namespace std;
int parent[100007];
int ans;
int u,v;
vector<int> vec[100007];
void dfs(int x,int ori)
{
// cout << x << ' ';
for(auto i:vec[x]){
if(i==ori) continue;
dfs(i,x);
}
if(parent[x]==x){
ans+=2;
if(ori) swap(parent[x],parent[ori]);
else {
swap(parent[x],parent[vec[x][0]]);
// cout << x << ' ' << vec[x][0];
}
}
}
int main()
{
int n; cin >> n;
for(int i=1;i<n;++i){
cin >> u >> v;
vec[u].push_back(v);
vec[v].push_back(u);
}
for(int i=1;i<=n;++i) parent[i]=i;
dfs(1,0);
// cout << '\n';
cout << ans << endl;
for(int i=1;i<=n;i++) cout << parent[i] << " ";
}
/*
5
1 2
2 3
3 4
4 5
*/
# | 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... |