제출 #1271513

#제출 시각아이디문제언어결과실행 시간메모리
1271513kawhietNetwork (BOI15_net)C++20
0 / 100
2 ms324 KiB
#include <bits/stdc++.h>
using namespace std;

const int N = 5e5;

vector<int> g[N];
vector<int> lf;

void dfs(int u, int p) {
    if (g[u].size() == 1) {
        lf.push_back(u + 1);
    }
    for (auto v : g[u]) {
        if (v != p) {
            dfs(v, u);
        }
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    cin >> n;
    for (int i = 1; i < n; i++) {
        int u, v;
        cin >> u >> v;
        u--; v--;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    dfs(0, -1);
    int m = lf.size();
    cout << (m + 1) / 2 << '\n';
    for (int i = 0; i + (m + 1) / 2 < m; i++) {
        cout << lf[i] << ' ' << lf[i + (m + 1) / 2] << '\n';
    }
    if (m & 1) {
        cout << lf.back() << ' ' << lf[0] << '\n';
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...