Submission #1168975

#TimeUsernameProblemLanguageResultExecution timeMemory
1168975JohanNetwork (BOI15_net)C++20
0 / 100
11 ms23876 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int inf = 1e18; const int MAX = 1e6 + 6; vector < int > node; map < pair < int , int > , int > mp; vector < vector < int > > adj(MAX); void dfs(int u, int pa){ if(adj[u].size() == 1) node.push_back(u); for(auto v : adj[u]){ if(v == pa) continue; dfs(v, u); } } 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); } dfs(1, 0); // for(int i = 1; i <= n; i++){ // if(adj[i].size() == 1) // node.push_back(i); // } cout << (node.size() + 1) / 2 << endl; int l = 0, r = node.size() - 1; while(r >= l){ if(l == r){ cout << node[r] << ' ' << node[node.size() - 1] << endl; return 0; } cout << node[l] << ' ' << node[r] << endl; l++, r--; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...