제출 #830228

#제출 시각아이디문제언어결과실행 시간메모리
830228yusuf12360Network (BOI15_net)C++14
100 / 100
362 ms49628 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
int cnt;
vector<int> leaf;
vector<vector<int>> adj;
void dfs(int u, int p=-1) {
	if(adj[u].size()==1) leaf.push_back(u), cnt++;
	for(int pp : adj[u]) {
		if(pp==p) continue;
		dfs(pp, u);
	}
}
signed main() {
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int n; cin >> n;
	adj.resize(n);
	vector<pair<int, int>> ans;
	map<int, int> mp;
	for(int i=1; i<n; i++) {
		int u, v; cin >> u >> v; --u; --v;
		adj[u].push_back(v);
		adj[v].push_back(u);
	}
	dfs(0);
	for(int i=0; 2*i<cnt; i++) 
		ans.push_back({leaf[i], leaf[i+cnt/2]});
	cout << ans.size() << '\n';
	for(auto p : ans) cout << p.first+1 << ' ' << p.second+1 << '\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...