Submission #394763

#TimeUsernameProblemLanguageResultExecution timeMemory
394763MHNaderiNetwork (BOI15_net)C++14
100 / 100
501 ms45684 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> //#define int long long #define pb push_back #define pii pair<int,int> #define F first #define S second const int maxn=5e5+7; int n; vector<int> adj[maxn]; void preprocess(){ cin>>n; for(int i=1;i<n;i++){ int u,v; cin>>u>>v; adj[u].pb(v); adj[v].pb(u); } } vector<int> ans; void dfs(int u,int p){ for(auto v : adj[u]) if(v != p) dfs(v,u); if(adj[u].size() == 1) ans.pb(u); } void process(){ dfs(1,1); } void afterprocess(){ int javab=ans.size()/2; cout<<javab+(ans.size()%2)<<'\n'; for(int i=0;i<javab;i++) cout<<ans[i]<<' '<<ans[i+javab]<<'\n'; if(ans.size()%2) cout<<ans[2*javab]<<' '<<ans[0]<<'\n'; } int32_t main(){ ios_base::sync_with_stdio(0); preprocess();process();afterprocess(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...