Submission #1285152

#TimeUsernameProblemLanguageResultExecution timeMemory
1285152StefanSebez철인 이종 경기 (APIO18_duathlon)C++17
0 / 100
1132 ms1114112 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double #define mp make_pair const int N=2e5+50; mt19937 rng(time(0)); bool test=false; vector<int>E[N]; ll n,m; ll sajz[N]; void DFS(int u,int p,ll &res){ sajz[u]=1; for(auto i:E[u]){ if(i==p) continue; DFS(i,u,res); sajz[u]+=sajz[i]; } res+=sajz[u]*(n-sajz[u]); } ll Stablo(){ ll res=0; for(int i=0;i<=n;i++) sajz[i]=0; for(int i=1;i<=n;i++)if(sajz[i]==0){ DFS(i,0,res); res-=(sajz[i]*(sajz[i]-1))/2; } res*=2; return res; } /*bool was1[N]; void DFS1(int u){ was1[u]=true; for(auto i:E[u])if(!was1[i])DFS1(i); } ll Bruteforce(){ ll res=0; for(int s=1;s<=n;s++){ for(int c=1;c<=n;c++)if(s!=c){ for(int f=1;f<=n;f++)if(f!=s&&f!=c){ bool moze=true; for(int u=1;u<=n;u++)if(u!=c){ for(int i=1;i<=n;i++) was1[i]=false; was1[u]=true; DFS1(c); if((u==s||!was1[s])&&(u==f||!was1[f])) moze=false; } res+=moze; } } } return res; }*/ int main(){ if(!test){ scanf("%lld%lld",&n,&m); for(int i=1;i<=m;i++){ int u,v;scanf("%i%i",&u,&v); E[u].pb(v),E[v].pb(u); } //printf("%lld\n",Bruteforce()); printf("%lld\n",Stablo()); } else{ /*int CT=1; while(CT++){ if(CT%1==0)cerr<<"radi\n"; n=70,m=n-1; for(int i=0;i<=n;i++) E[i].clear(); vector<pair<int,int>>edges; for(int i=2;i<=n;i++){ int p=rng()%(i-1)+1; E[p].pb(i);E[i].pb(p); edges.pb({p,i}); } ll x=Stablo(),y=Bruteforce(); if(x!=y){ printf("%i %i\n",n,m); for(auto [u,v]:edges){ printf("%i %i\n",u,v); } printf("\n%i %i\n",x,y); return 0; } }*/ } return 0; }

Compilation message (stderr)

count_triplets.cpp: In function 'int main()':
count_triplets.cpp:60:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   60 |         scanf("%lld%lld",&n,&m);
      |         ~~~~~^~~~~~~~~~~~~~~~~~
count_triplets.cpp:62:26: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   62 |             int u,v;scanf("%i%i",&u,&v);
      |                     ~~~~~^~~~~~~~~~~~~~
#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...