제출 #1336500

#제출 시각아이디문제언어결과실행 시간메모리
1336500haught_veathNetwork (BOI15_net)C++17
100 / 100
367 ms39164 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin(),x.end()
#define fileinp(name) freopen(name,"r",stdin)
#define fileout(name) freopen(name,"w",stdout)
#define loop(i, start, end, step) for (long long i = start; i <=end; i += step)
#define rloop(i,start,end,step) for(long long i = end; i>=start;i-=step)
#define fastio ios_base::sync_with_stdio(false);cout.tie(0);cin.tie(0)
#define ins push_back
template <typename T>
using v = vector<T>;
using cap = pair<long,long>;

v<v<int>> adj;
v<int> canh;
signed main(){
  int n;
  cin >> n;
  adj.resize(n+1);
  loop(i,1,n-1,1){
    int a,b;
    cin >> a >> b;
    adj[a].ins(b);
    adj[b].ins(a);
  }
  auto dfs = [&](auto&& self,int v,int parent) -> void{
    if(adj[v].size() == 1)canh.ins(v);
    for(int u : adj[v]){
      if(u == parent)continue;
      self(self,u,v);
    }
  };
  dfs(dfs,1,1);
  if(canh.size()&1)canh.ins(canh[0]);
  cout << canh.size()/2 << "\n";
  int r = canh.size()/2;
  for(int i = 0;2*i < canh.size();i++)cout << canh[i] <<" " << canh[r++] << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...