| 记录编号 | 
        227454 | 
        评测结果 | 
        AAAAAAAAAA | 
    
    
        | 题目名称 | 
        899.爆炸化合物 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         YGOI_真神名曰驴蛋蛋 | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.105 s  | 
    
    
        | 提交时间 | 
        2016-02-18 17:18:04 | 
        内存使用 | 
        4.13 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
#include<functional>
#include<bitset>
#include<pthread.h>
void reader(int &x)
{
	x=0;char c=0;
	do{c=getchar();}while((c<'0'||c>'9')&&c!='-');
	if(c!='-')do{x=x*10+c-'0';c=getchar();}while(c>='0'&&c<='9');
	else x=-1,getchar();
}
struct InSet{
	int Set[1000010];
	inline void InSeter(int n){for(int i=1;i<=n;i++){Set[i]=i;}}
	inline int find(int i)
	{
		if(i!=Set[i])Set[i]=find(Set[i]);
		return Set[i];
	}
	inline void  Toset(int a,int b)
	{
		a=find(a);
		b=find(b);
		if(a!=b)Set[a]=b;
	}
	inline bool judge(int a,int b)
	{
		return find(a)==find(b);
	}
}seter;
int main()
{
	freopen("explosion.in","r",stdin);
	freopen("explosion.out","w",stdout);
	int a,b,p=0;
	seter.InSeter(1e6);
	while(1)
	{
		reader(a);
		if(a==-1)break;
		reader(b);
		if(seter.judge(a,b)){p++;}
		else{seter.Toset(a,b);}
	}
	printf("%d",p);
	fclose(stdin);fclose(stdout);
	return 0;
}