Submission #747692

#TimeUsernameProblemLanguageResultExecution timeMemory
7476921075508020060209tcDuathlon (APIO18_duathlon)C++14
23 / 100
1062 ms1048576 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int n;int m; vector<int>e[300005]; int sz[300005]; int ans; void dfssz(int nw,int pa){ sz[nw]=1; for(int i=0;i<e[nw].size();i++){ int v=e[nw][i]; if(v==pa){continue;} dfssz(v,nw); sz[nw]+=sz[v]; } } void dfs(int nw,int pa,int rtsz){ ans+=(rtsz-sz[nw])*(sz[nw]-1); for(int i=0;i<e[nw].size();i++){ int v=e[nw][i]; if(v==pa){continue;} dfs(v,nw,rtsz); ans+=sz[v]*(rtsz-1-sz[v]); } } signed main() { cin>>n>>m; for(int i=1;i<=m;i++){ int a;int b; cin>>a>>b; e[a].push_back(b); e[b].push_back(a); } ans=0; vector<int>rt; for(int i=1;i<=n;i++){ if(sz[i]==0){ dfssz(i,0); rt.push_back(i); } } for(int i=0;i<rt.size();i++){ dfs(rt[i],0,sz[rt[i]]); } cout<<ans<<endl; }

Compilation message (stderr)

count_triplets.cpp: In function 'void dfssz(long long int, long long int)':
count_triplets.cpp:13:14: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 | for(int i=0;i<e[nw].size();i++){
      |             ~^~~~~~~~~~~~~
count_triplets.cpp: In function 'void dfs(long long int, long long int, long long int)':
count_triplets.cpp:25:14: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 | for(int i=0;i<e[nw].size();i++){
      |             ~^~~~~~~~~~~~~
count_triplets.cpp: In function 'int main()':
count_triplets.cpp:51:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |     for(int i=0;i<rt.size();i++){
      |                 ~^~~~~~~~~~
#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...