Submission #1098034

#TimeUsernameProblemLanguageResultExecution timeMemory
1098034AndrijaMNetwork (BOI15_net)C++17
63 / 100
693 ms262144 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int maxn=150; const int mod=998244353; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ///freopen("lexicografic.in","r",stdin); ///freopen("lexicografic.out","w",stdout); int n; cin>>n; vector<int>g[n]; set<int>st; for(int i=0;i<n-1;i++) { int a,b; cin>>a>>b; a--;b--; g[a].push_back(b); g[b].push_back(a); } for(int i=0;i<n;i++) { if(g[i].size()==1) { st.insert(i); } } int mi[n][n]; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { mi[i][j]=1e18; } } vector<pair<int,pair<int,int>>>v; for(int i=0;i<n;i++) { queue<int>Q; Q.push(i); Q.push(1); bool vis[n]; memset(vis,0,sizeof vis); vis[i]=true; while(!Q.empty()) { int node=Q.front();Q.pop(); int k=Q.front();Q.pop(); mi[i][node]=k; if(st.count(i)==1 && st.count(node)==1 && i!=node) v.push_back({k,{i,node}}); for(auto ax:g[node]) { if(vis[ax])continue; Q.push(ax); Q.push(k+1); vis[ax]=1; } } } int sz=st.size(); int kol=0; bool p[n]; memset(p,0,sizeof p); sort(v.rbegin(),v.rend()); vector<pair<int,int>>ans; int num; for(auto ax:v) { int w=ax.first; int a=ax.second.first; int b=ax.second.second; ///cout<<w<<endl; if(a==b)continue; if(st.count(a)==0 || st.count(b)==0)continue; if(p[a]==0 && p[b]==0) { p[a]=p[b]=1; kol+=2; num=a+1; st.erase(a); st.erase(b); ans.push_back({a+1,b+1}); continue; } } if(sz%2==1) { ans.push_back({*st.begin()+1,num}); } cout<<ans.size()<<endl; for(auto ax:ans) { cout<<ax.first<<" "<<ax.second<<endl; } return 0; }

Compilation message (stderr)

net.cpp: In function 'int main()':
net.cpp:76:13: warning: unused variable 'w' [-Wunused-variable]
   76 |         int w=ax.first;
      |             ^
net.cpp:34:9: warning: variable 'mi' set but not used [-Wunused-but-set-variable]
   34 |     int mi[n][n];
      |         ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...