Submission #1168984

#TimeUsernameProblemLanguageResultExecution timeMemory
1168984JohanNetwork (BOI15_net)C++20
0 / 100
10 ms23880 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int inf = 1e18; const int MAX = 1e6 + 6; bool used[MAX]; 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; srand(time(0)); for(auto i : node){ vector < int > idx; if(used[i]) continue; used[i] = true; for(auto j : node){ // if(i == j) continue; if(!used[j]) idx.push_back(j); } if(!idx.size()){ cout << i << ' ' << node[node.size() - 1] << endl; continue; } int in = rand() % (int)idx.size(); cout << i << ' ' << idx[in] << endl; used[idx[in]] = true; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...