Submission #1268557

#TimeUsernameProblemLanguageResultExecution timeMemory
1268557Born_To_LaughNetwork (BOI15_net)C++17
63 / 100
1 ms1608 KiB
// Born_To_Laugh - Hughie Do #include <bits/stdc++.h> #define alle(AC) AC.begin(), AC.end() #define fi first #define se second using namespace std; typedef long long ll; [[maybe_unused]] const ll MOD = 998244353, INF = 1e9 + 7; const int maxn = 5e4 + 10; vector<int> adj[maxn]; int leafs[maxn]; int n; int id = 0; void dfs(int a, int par){ if(adj[a].size() == 1){ id++; leafs[id] = a; } for(auto &elm: adj[a]){ if(elm == par)continue; dfs(elm, a); } } void solve(){ cin >> n; for(int i=1; i<n; ++i){ int a, b;cin >> a >> b; adj[a].push_back(b); adj[b].push_back(a); } dfs(1, -1); if(id & 1){ cout << (id + 1) / 2 << '\n'; } else cout << id/2 << '\n'; for(int i=1; i<=(int)id/2; ++i){ cout << leafs[i] << ' ' << leafs[i + (int)id/2] << '\n'; } if(id & 1){ cout << leafs[1] << ' ' << leafs[id] << '\n'; } } signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...