比赛 20120712 评测结果 AAAAAAAAAA
题目名称 爆炸化合物 最终得分 100
用户昵称 粘粘自喜 运行时间 0.109 s
代码语言 C++ 内存使用 0.70 MiB
提交时间 2016-02-17 10:35:04
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=100000+10;
int tot;
int pre[maxn];
int find(int x)
{
	int r=x;
	while(pre[r]!=r)
		r=pre[r];
	int i=x,j;
	while(i!=r){
		j=pre[i];
		pre[i]=r;
		i=j;
	}
	return r;
}
void join(int x,int y)
{
	int fx=find(x),fy=find(y);
	if(fx!=fy)	pre[fx]=fy;
	else tot++;
}
int main()
{
	int a,b;
	freopen("explosion.in","r",stdin);
	freopen("explosion.out","w",stdout);
	for(int i = 1;i<=100000;++i)pre[i]=i;
	while(scanf("%d %d",&a,&b)==2){
		join(a,b);
	}
	cout<<tot;
	return 0;
}