Submission #1180621

#TimeUsernameProblemLanguageResultExecution timeMemory
1180621nguyenkhangninh99Network (BOI15_net)C++20
100 / 100
328 ms69728 KiB

#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...