Submission #1226317

#TimeUsernameProblemLanguageResultExecution timeMemory
1226317kaiboyNetwork (BOI15_net)C++20
100 / 100
179 ms40864 KiB
#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

const int N = 500000;

vector<int> ej[N];
int qu[N], cnt;

void dfs(int p, int i) {
	if (ej[i].size() == 1) {
		qu[cnt++] = i;
		return;
	}
	for (int j : ej[i])
		if (j != p)
			dfs(i, j);
}

int main() {
	ios_base::sync_with_stdio(false), cin.tie(NULL);
	int n; cin >> n;
	for (int h = 0; h < n - 1; h++) {
		int i, j; cin >> i >> j, i--, j--;
		ej[i].push_back(j);
		ej[j].push_back(i);
	}
	int r = 0;
	while (ej[r].size() == 1)
		r++;
	dfs(-1, r);
	cout << (cnt + 1) / 2 << '\n';
	for (int l = 0, r = cnt / 2; r < cnt; l++, r++)
		cout << qu[l] + 1 << ' ' << qu[r] + 1 << '\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...