이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int>v[500001] , leafs;
void dfs(int node , int p )
{
if(v[node].size()==1)
{
leafs.push_back(node);
}
for(int u : v[node])
{
if(u!=p)
{
dfs(u , node);
}
}
return;
}
int main()
{
int n , x, y ;
cin >>n ;
for(int i = 0 ; i < n-1; i++)
{
cin >> x >>y ;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1 , -1);
int sz= leafs.size();
if(sz&1)
{
cout << sz/2 +1 << "\n";
}
else cout << sz/2 << "\n";
for(int i = 0 ; i < (sz/2) ; i++)
{
cout << leafs[i] << " " << leafs[i+((sz+1)/2)] << "\n";
}
if(sz&1)
{
cout << leafs[sz/2] << " " <<1 << "\n";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |