#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e6 + 5;
vector<int> g[maxn], ans;
void dfs(int u, int pre){
if(g[u].size() == 1) ans.push_back(u);
for(int v: g[u]){
if(v == pre) continue;
else dfs(v, u);
}
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n; cin >> n;
vector<vector<int>> adj(n + 1, vector<int>());
for(int i = 1; i <= n - 1; i++){
int u, v; cin >> u >> v;
g[u].push_back(v);
g[v].push_back(u);
}
dfs(1, 0);
cout << (ans.size() + 1) / 2 << "\n";
for(int i = 0; i < ans.size() / 2; i++) cout << ans[i] << " " << ans[i + ans.size() / 2] << "\n";
if(ans.size() & 1) cout << ans.back() << " " << ans[0] << "\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |