제출 #969438

#제출 시각아이디문제언어결과실행 시간메모리
969438vjudge1Cities (BOI16_cities)C++17
0 / 100
4 ms5212 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...