제출 #519928

#제출 시각아이디문제언어결과실행 시간메모리
519928Hacv16Network (BOI15_net)C++17
100 / 100
481 ms82996 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; const int MAX = 2e6 + 15; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; #define pb push_back #define sz(x) (int) x.size() #define fr first #define sc second #define mp make_pair #define all(x) x.begin(), x.end() #define dbg(x) cout << #x << ": " << "[ " << x << " ]\n" int n; vector<int> adj[MAX], l; void setIO(){ ios_base::sync_with_stdio(false); cin.tie(NULL); } void dfs(int x, int p){ if(sz(adj[x]) == 1){ l.pb(x); } for(auto v : adj[x]){ if(v == p) continue; dfs(v, x); } } int main(){ setIO(); cin >> n; for(int i = 1; i < n; i++){ int u, v; cin >> u >> v; adj[u].pb(v); adj[v].pb(u); } dfs(1, -1); int e = sz(l) / 2 + (sz(l) % 2); cout << e << '\n'; for(int i = 0; i < e; i++){ int u = l[i], v = (i + sz(l)/2 < sz(l) ? l[i + sz(l)/2] : l[0]); cout << u << ' ' << v << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...