제출 #1361701

#제출 시각아이디문제언어결과실행 시간메모리
1361701javkhlantogs철인 이종 경기 (APIO18_duathlon)C++20
0 / 100
1095 ms17520 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<ll> par;
ll root(ll u){
	if(par[u]==u) return u;
	ll rt=root(par[u]);
	par[u]=rt;
	return rt;
}
void join(ll u,ll v){
	ll ru=root(u);
	ll rv=root(v);
	if(ru==rv) return;
	par[ru]=rv;
}
ll ans=0;
bool check;
vector<vector<ll>> e;
vector<bool> vis;
void dfs(ll u,ll i,ll j,ll k){
	vis[u]=1;
	if(vis[j] and vis[k]) check=1;
	for(auto v:e[u]){
		if(vis[v]) continue;
		if(v==k and vis[j]==0) continue;
		dfs(v,i,j,k);
	}
	vis[u]=0;
}
int main(){
	ll n,m,i,j,k,q;
	cin>>n>>m;
	par.resize(n+1);
	e.resize(n+1);
	vis.resize(n+1);
	for(i=1 ; i<=n ; i++) par[i]=i;
	for(i=0 ; i<m ; i++){
		cin>>j>>k;
		join(j,k);
		e[j].push_back(k);
		e[k].push_back(j);
	}
	set<ll> st;
	for(i=1 ; i<=n ; i++){
		for(j=1 ; j<=n ; j++){
			if(i==j) continue;
			for(k=1 ; k<=n ; k++){
				if(k==i or k==j) continue;
				// i->j->K
				fill(vis.begin(),vis.end(),0);
				check=0;
				dfs(i,i,j,k);
				if(check) ans++;
			}
		}
	}
	cout<<ans<<"\n";
	return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…