Submission #1149851

#TimeUsernameProblemLanguageResultExecution timeMemory
1149851dostsNetwork (BOI15_net)C++20
63 / 100
4 ms7496 KiB
#include <bits/stdc++.h> #pragma GCC target("avx2") #pragma GCC optimize("O3,unroll-loops") using namespace std; #define int long long #define pii pair<int,int> #define ff first #define ss second #define sp << " " << #define all(cont) cont.begin(),cont.end() #define vi vector<int> const int inf = 1e17,N = 3e5+1,MOD = 1e9+7,BL = 1000; vi edges[N]; vi leaf; void leadfs(int node,int p) { for (auto it : edges[node]) { if (it == p) continue; leadfs(it,node); } if (edges[node].size() == 1) leaf.push_back(node); } void solve() { int n; cin >> n; for (int i=1;i<n;i++) { int a,b; cin >> a >> b; edges[a].push_back(b); edges[b].push_back(a); } int root = 1; for (int i=1;i<=n;i++) { if (edges[i].size() == 1) continue; root = i; } leadfs(root,root); cout << (leaf.size()+1)/2 << '\n'; for (int i=0;i<leaf.size()/2;i++) { cout << leaf[i] sp leaf[i+leaf.size()/2] << '\n'; } if (leaf.size()%2) cout << leaf[0] sp leaf.back() << '\n'; } int32_t main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #ifdef Dodi freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif int t = 1; //cin >> t; while (t --> 0) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...