Submission #1168937

#TimeUsernameProblemLanguageResultExecution timeMemory
1168937JohanNetwork (BOI15_net)C++20
0 / 100
11 ms23872 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int inf = 1e18; const int MAX = 1e6 + 6; map < pair < int , int > , int > mp; vector < vector < int > > adj(MAX); signed main(){ int n; cin >> n; for(int i = 1; i < n; i++){ int u, v; cin >> u >> v; mp[{u, v}] = 1; mp[{v, u}] = 1; adj[u].push_back(v); adj[v].push_back(u); } vector < int > node; for(int i = 1; i <= n; i++){ if(adj[i].size() == 1) node.push_back(i); } cout << (node.size() + 1) / 2 << endl; for(int i = 0; i < node.size(); i+=2){ if(i + 1 < node.size() - 1) cout << node[i] << ' ' << node[i + 1] << endl; } if(node.size() % 2 == 0) return 0; int v = node[node.size() - 1]; for(int i = 1; i <= n; i++){ if(i != v && !mp[{i, v}]){ cout << i << ' ' << v << endl; return 0; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...