제출 #744453

#제출 시각아이디문제언어결과실행 시간메모리
744453Abito철인 이종 경기 (APIO18_duathlon)C++14
0 / 100
1087 ms1048576 KiB
#include <bits/stdc++.h> #define pb push_back #define F first #define S second #define endl '\n' #define ep insert #define pow pwr #define sqrt sqrtt #define elif else if #define y1 YONE #define int long long using namespace std; const int N=1e6+5; int n,m,sz[N],par[N]; vector<int> adj[N]; int getsize(int node,int p){ par[node]=p; sz[node]=1; for (auto u:adj[node]){ if (u==p) continue; sz[node]+=getsize(u,node); }return sz[node]; } int32_t main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>m; for (int i=1;i<=m;i++){ int x,y; cin>>x>>y; adj[x].pb(y); adj[y].pb(x); } getsize(1,0); int ans=0; for (int i=1;i<=n;i++){ int x=sz[i]-1; for (auto u:adj[i]){ if (u==par[i]) continue; x-=sz[u]; ans+=x*sz[u]; }ans+=(n-sz[i])*(sz[i]-1); } cout<<ans*2LL<<endl; return 0; }
#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...