Submission #1091620

#TimeUsernameProblemLanguageResultExecution timeMemory
1091620DeathIsAweNetwork (BOI15_net)C++17
100 / 100
199 ms46680 KiB
#include <bits/stdc++.h> #define el '\n' #define fi first #define sc second #define int ll #define pii pair<int, int> #define all(v) v.begin(), v.end() #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") using namespace std; using ll=long long; using ull=unsigned long long; using ld=long double; const int mod=1e9+7; const int N=5e5+11; int n, root; vector<int> adj[N], leaf; void dfs(int u, int pa) { if(adj[u].size()==1) leaf.push_back(u); for(int v:adj[u]) { if(v!=pa) dfs(v, u); } } void sol() { cin >> n; for(int i=1;i<n;i++) { int u, v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } for(int i=1;i<=n;i++) if(adj[i].size()>1) root=i; dfs(root, 0); int sz=leaf.size(); cout << (sz+1)/2 << el; for(int i=0; i<(sz+1)/2; i++) cout << leaf[i] << ' ' << leaf[i + sz / 2] << el; } signed main() { // freopen("divisor.INP", "r", stdin); // freopen("divisor.OUT", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); int t=1; //cin >> t; while(t--) { sol(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...