제출 #1142877

#제출 시각아이디문제언어결과실행 시간메모리
1142877dpsaveslivesNetwork (BOI15_net)C++20
0 / 100
5 ms12096 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 5e5+5; vector<int> adj[MAXN]; vector<int> deg,leaf; void dfs(int u, int p){ if(deg[u] == 1){ leaf.push_back(u); return; } for(auto v : adj[u]){ if(v != p){ dfs(v,u); } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin >> N; deg = vector<int>(N+1,0); for(int i = 0;i<=N-2;++i){ int u,v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); ++deg[u]; ++deg[v]; } int root = 1; for(int i = 1;i<=N;++i){ if(deg[i] >= 2){ root = i; } } dfs(root,0); int cnt = leaf.size()/2; if(leaf.size() % 2 == 1) ++cnt; for(int i = 0;i<=(leaf.size()/2)-1;++i){ cout << leaf[i] << " " << leaf[i+leaf.size()/2] << "\n"; } if(leaf.size() % 2 == 1){ cout << leaf[0] << " " << leaf.back() << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...