#include <iostream>
#include <vector>
using namespace std;
#define maxn 500001
vector<int> adj[maxn], l;
int leaves = 0, n;
void dfs(int cur, int par) {
for (int i : adj[cur]) {
if (i != par) dfs(i, cur);
}
if (adj[cur].size() == 1) {
leaves++;
l.push_back(cur);
}
}
int main() {
cin >> n;
for (int i = 0; i < n - 1; i++) {
int a, b;
cin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
for (int i = 0; i < leaves/2; i++) {
cout << l[i] << " " << l[i + leaves/2 + leaves%2] << endl;
}
if (leaves%2 == 1) cout << 1 << " " << l[leaves/2];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |