Submission #402166

#TimeUsernameProblemLanguageResultExecution timeMemory
402166A_DDuathlon (APIO18_duathlon)C++14
23 / 100
141 ms12360 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int N=1e5+100; vector<int> g[N]; bool vis[N]; int dep[N]; int sum[N]; int a[N]; int n,ans,nn; void dfs2(int u,int p) { vis[u]=1; for(auto x:g[u]){ if(x==p)continue; dep[x]=dep[u]+1; dfs2(x,u); sum[u]+=sum[x]; a[u]+=a[x]; } sum[u]+=dep[u]; } void dfs(int u,int p,int ann) { vis[u]=1; ans+=ann-(nn); //cout<<u<<" "<<ann<<endl; ans+=1; for(auto x:g[u]){ if(x==p)continue; dfs(x,u,ann+(nn-a[x])-a[x]); } } void solve() { int m,ann=0; cin>>n>>m; if(m>n-1)assert(0); for(int i=1;i<=n;i++)a[i]=1; while(m--){ int a,b; cin>>a>>b; g[a].push_back(b); g[b].push_back(a); } for(int i=1;i<=n;i++){ if(!vis[i]){ dfs2(i,i); } } memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++){ if(!vis[i]){ nn=a[i]; // cout<<nn<<" "<<sum[i]<<endl; dfs(i,i,sum[i]); } } cout<<ans<<endl; } main() { int t=1; // cin>>t; while(t--)solve(); }

Compilation message (stderr)

count_triplets.cpp: In function 'void solve()':
count_triplets.cpp:40:11: warning: unused variable 'ann' [-Wunused-variable]
   40 |     int m,ann=0;
      |           ^~~
count_triplets.cpp: At global scope:
count_triplets.cpp:66:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   66 | main()
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...