제출 #1343923

#제출 시각아이디문제언어결과실행 시간메모리
1343923teodorazvanNetwork (BOI15_net)C++20
0 / 100
0 ms348 KiB
#include <bits/stdc++.h>

using namespace std;

int n;

vector<vector<int>> a;
vector<int>gr,frunz;

void dfs(int nod,int rad) {
    bool frun=true;
    for (auto f:a[nod]) {
        if (f==rad) continue;
        frun=false;
        dfs(f,nod);
    }
    if (frun)  frunz.push_back(nod);
}

int main() {
    cin>>n;
    a.resize(n+1);
    gr.resize(n+1);
    int x,y;
    for (int i=1;i<n;i++) {
        cin>>x>>y;
        gr[x]++;
        gr[y]++;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    for (int i=1;i<=n;i++) {
        if (gr[i]>1) {
            dfs(i,0);
            break;
        }
    }
    int add=(frunz.size()%2==0)?0:1;
    cout<<frunz.size()/2+add<<endl;
    for (int i=0;i<frunz.size()-1;i+=2) {
        cout<<frunz[i]<<" "<<frunz[i+1]<<endl;
    }
    if (frunz.size()%2==1)cout<<frunz[frunz.size()-2]<<" "<<frunz[frunz.size()-1]<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...