제출 #1149448

#제출 시각아이디문제언어결과실행 시간메모리
1149448njoopNetwork (BOI15_net)C++17
0 / 100
5 ms12100 KiB
#include <bits/stdc++.h> using namespace std; int n, s, t, l, r; vector<int> g[500010]; vector<pair<int, int>> leaf; void dfs(int no, int pa, int di) { if(g[no].size() == 1) { leaf.push_back({di, no}); } for(auto i: g[no]) { if(i == pa) continue; dfs(i, no, di+1); } } int main() { cin.tie(0)->sync_with_stdio(0); cin >> n; for(int i=1; i<n; i++) { cin >> s >> t; g[s].push_back(t); g[t].push_back(s); } for(int i=1; i<=n; i++) { if(g[i].size() > 1) { dfs(i, -1, 0); break; } } sort(leaf.begin(), leaf.end()); cout << leaf.size()/2 + leaf.size()%2 << "\n"; for(int i=0; i<leaf.size()/2; i++) { cout << leaf[i].second << " " << leaf[i + leaf.size()/2 + leaf.size()%2].second << "\n"; } if(leaf.size()%2 == 1) { cout << leaf[0].second << " " << leaf[leaf.size()/2].second << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...