Submission #552497

#TimeUsernameProblemLanguageResultExecution timeMemory
552497zaneyuDuathlon (APIO18_duathlon)C++14
8 / 100
57 ms11084 KiB
/*input 4 4 1 2 2 3 3 4 4 1 */ #include<bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0;i<n;i++) const int maxn=1e5+5; #define pb push_back #define lowb(x) x&(-x) #define ll long long #define MNTO(x,y) x=min(x,y) #define REP1(i,n) for(int i=1;i<=n;i++) int d; vector<int> v[maxn]; bool ok[maxn]; int vis[maxn]; bool cyc=0; ll sz=0; void dfs(int u,int p){ vis[u]=1; ++sz; for(int x:v[u]){ if(x==p) continue; if(!vis[x]){ dfs(x,u); } else{ cyc=1; } } } ll ans=0; int main(){ ios::sync_with_stdio(false),cin.tie(0); int n,m; cin>>n>>m; REP(i,m){ int a,b; cin>>a>>b; --a,--b; v[a].pb(b),v[b].pb(a); } REP(i,n){ if(!vis[i]){ sz=0; cyc=0; dfs(i,-1); if(cyc) ans+=sz*(sz-1)*(sz-2); else ans+=sz*(sz-1)*(sz-2)/3; } } cout<<ans; }
#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...