Submission #568762

#TimeUsernameProblemLanguageResultExecution timeMemory
568762inluminasDuathlon (APIO18_duathlon)C++17
0 / 100
25 ms3156 KiB
#include"bits/stdc++.h"
using namespace std;

#define ll long long
#define endl "\n"
#define fastio ios_base::sync_with_stdio(false)
#define inf LLONG_MAX
#define l first
#define r second

const ll lmt=1e5+10;
ll sz[lmt],par[lmt];
bool vis[lmt];

ll findpar(ll u){
	if(par[u]==u) return u;
	return par[u]=findpar(par[u]);
}

void merge(ll u,ll v){
	u=findpar(u),v=findpar(v);
	if(u==v) return;
	par[u]=v;
	sz[v]+=sz[u];
	return;
}

int main(){
	fastio;

	ll n,m;
	cin>>n>>m;
	for(ll i=1;i<=n;i++){
		par[i]=i,sz[i]=1;
	}
	for(ll i=1;i<=m;i++){
		ll u,v;
		cin>>u>>v;
		merge(u,v);
	}

	ll ans=0;

	for(ll i=1;i<=n;i++){
		ll p=findpar(i);
		if(vis[p]) continue;
		vis[p]=1;
		ll val=sz[p];
		if(val<3) continue;
		ans+=(val*(val-1)*(val-2));
	}

	cout<<ans<<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...