Submission #1361714

#TimeUsernameProblemLanguageResultExecution timeMemory
1361714khangai11Duathlon (APIO18_duathlon)C++20
0 / 100
1096 ms13308 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
vector<int> par,to;
vector<vector<int>> g;
int root(int i){
	if(par[i]==i){
		return i;
	}
	int ri=root(par[i]);
	return par[i]=ri;
}
void join(int i,int j){
	int ri=root(i),rj=root(j);
	if(ri==rj){
		return;
	}
	par[rj]=ri;
}
vector<int> rm;
int D=0;
void dfs(int i,int c,int z){
	if(rm[i]==1){
		return;
	}
	rm[i]=1;
	if(z==1){
		if(to[i]==0)
		D++;
		to[i]=1;
	}
	if(i==c){
		z=1;
	}
	for(auto x:g[i]){
		if(rm[x]==0){
			dfs(x,c,z);
		}
	}
	if(i==c){
		z=0;
	}
	rm[i]=0;
}
void solve(){
	int n,m;
	cin>>n>>m;
	to.resize(n+1,0);
	par.resize(n+1);
	g.resize(n+1);
	rm.resize(n+1,0);
	for(int a=1;a<=n;a++){
		par[a]=a;
	}
	for(int a=0;a<m;a++){
		int u,v;
		cin>>u>>v;
		g[u].push_back(v);
		g[v].push_back(u);
	}
	for(int a=1;a<=n;a++){
		for(int b=1;b<=n;b++){
			if(a!=b){
				dfs(a,b,0);
				fill(rm.begin(),rm.end(),0);
				fill(to.begin(),to.end(),0);
			}
		}
	}
	cout<<D<<endl;
}
signed main(){
	ios::sync_with_stdio();
	cin.tie(0);
	cout.tie(0);
	ll t=1;
//	cin>>t;
	for(ll a=0;a<t;a++){
		solve();
	}
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...