Submission #228013

#TimeUsernameProblemLanguageResultExecution timeMemory
228013quocnguyen1012Network (BOI15_net)C++14
0 / 100
15 ms12160 KiB
#include <bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back #define ar array using namespace std; typedef long long ll; typedef pair<int, int> ii; const int maxn = 5e5 + 5; int deg[maxn], N; vector<int> leaf; vector<int> adj[maxn]; int sz[maxn]; void dfs(int u, int p = -1) { sz[u] = 1; for(int v : adj[u]) if(v != p){ dfs(v, u); sz[u] += sz[v]; } if(sz[u] == 1) leaf.eb(u); } signed main(void) { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #ifdef LOCAL freopen("A.INP", "r", stdin); freopen("A.OUT", "w", stdout); #endif // LOCAL cin >> N; for(int i = 1; i < N; ++i){ int u, v; cin >> u >> v; deg[u]++; deg[v]++; adj[u].eb(v); adj[v].eb(u); } int r; for(int i = 1; i <= N; ++i) if(adj[i].size() >= 2) r = i; dfs(r); cout << (leaf.size() + 1) / 2 << '\n'; for(int i = 0; i < leaf.size(); i += 2){ if(i == leaf.size() - 1){ cout << leaf[i] << ' ' << leaf[0] << '\n'; } else cout << leaf[i] << ' ' << leaf[i + 1] << '\n'; } }

Compilation message (stderr)

net.cpp: In function 'int main()':
net.cpp:50:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i < leaf.size(); i += 2){
                  ~~^~~~~~~~~~~~~
net.cpp:51:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(i == leaf.size() - 1){
        ~~^~~~~~~~~~~~~~~~~~
net.cpp:48:6: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   dfs(r);
   ~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...