基本题。
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstdio>
using namespace std;
#define N 100005
int pa[N];
int findset(int x)
{
if (pa[x]==x) return x;
pa[x]=findset(pa[x]);
return pa[x];
}
void init()
{
for (int i=0;i<N;i++)
pa[i]=i;
}
int main()
{
int a, b, fa, fb, sum=0;
init();
while(scanf("%d",&a)!=EOF){
if (a==-1) {
printf("%d\n",sum);
init();
sum=0;
}
else {
scanf("%d",&b);
fa=findset(a);
fb=findset(b);
if (fa==fb) sum++;
else pa[fb]=fa;
}
}
return 0;
}