이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <vector>
using namespace std;
const int N = 500005;
vector <int> g[N];
int nr = 0;
vector <int> v;
void dfs(int nod, int dad = 0)
{
if (g[nod].size() == 1)
v.push_back(nod);
for (auto x : g[nod])
if (x != dad)
dfs(x, nod);
}
int main()
{
int n, i, a, b;
cin >> n;
for (i = 1; i < n; i++)
{
cin >> a >> b;
g[a].push_back(b);
g[b].push_back(a);
}
dfs(1);
nr = v.size();
int ans = (nr + 1) / 2;
cout << ans;
for (i = 0; i < nr / 2; i ++)
cout << endl << v[i] << " " << v[i + ans];
if (nr % 2)
cout << endl << v[nr / 2] << " " << v[0];
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... |