Submission #656037

#TimeUsernameProblemLanguageResultExecution timeMemory
656037Mohammad_ParsaNetwork (BOI15_net)C++14
100 / 100
601 ms41544 KiB
/* in the name of allah */
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define F first
#define S second
#define mk make_pair

const int N=5e5+7;

vector<int>vec[N],barg;

void dfs(int v,int p){
	if(vec[v].size()==1) barg.pb(v);
	for(auto u:vec[v]){
		if(u!=p) dfs(u,v);
	}
}


int main(){
	ios:: sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int n;
	cin>>n;
	int u,v;
	for(int i=0;i<n-1;i++){
		cin>>u>>v;
		vec[v].pb(u);
		vec[u].pb(v);
	}
	if(n==2){
		cout<<1<<endl<<1<<" "<<2;
		return 0;
	}
	for(int i=1;i<=n;i++){
		if(vec[i].size()!=1){
			dfs(i,i);
			break;
		}
	}
	int x=barg.size()/2+(barg.size()%2);
	cout<<x<<endl;
	for(int i=0;i<x;i++){
		cout<<barg[i]<<" "<<barg[(i+x)%barg.size()]<<endl;
	}
	
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...