Submission #1189072

#TimeUsernameProblemLanguageResultExecution timeMemory
1189072rendelNetwork (BOI15_net)C++20
0 / 100
5 ms12100 KiB
#include<bits/stdc++.h>
using namespace std;
const int maxn = 5e5+5;
int deg[maxn];
vector<int> adj[maxn];
vector<int> g;
void dfs(int u,int p){
    if(deg[u]==1) g.emplace_back(u);
    for(auto v : adj[u]){
        if(v==p) continue;
        dfs(v,u);
    }
}

int main(){
    cin.tie(nullptr)->sync_with_stdio(false); cout.tie(0);

    int n; cin >> n;
    for(int i=0;i<n-1;++i){
        int a,b; cin >> a >> b;
        adj[a].emplace_back(b);
        adj[b].emplace_back(a);
        deg[a]++, deg[b]++;
    }
    dfs(1,0);

    int l=g.size();
    cout << (l+1)/2 << '\n';
    for(int i=0;i<l/2;++i){
        cout << g[i] << ' ' << g[l-i-1] <<'\n'; 
    }
    if(l%2==1) cout << g[0] << ' ' << g[l/2] ;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...