Pagini recente » Cod sursa (job #2528530) | Cod sursa (job #552188) | Cod sursa (job #2810479) | Cod sursa (job #878797) | Cod sursa (job #718855)
Cod sursa(job #718855)
#include<stdio.h>
long long n,m;
long long l[100002]={0};
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%lld%lld",&n,&m);
long k=1;
for(int i=0;i<n;i++)
{
long long a,b;
scanf("%lld%lld",&a,&b);
if(l[a]&&l[b])
{
if(l[a]<l[b])
{
for(int i=1;i<=n;i++)
if(l[i]==l[b]&& i!=b)
l[i]=l[a];
l[b]=l[a];
}
else
{
for(int i=1;i<=n;i++)
if(l[i]==l[a]&& i!=a)
l[i]=l[b];
l[a]=l[b];
}
}
else
if(l[a]||l[b])
{
if(l[a])
l[b]=l[a];
else
l[a]=l[b];
}
else
{
l[a]=k;
l[b]=k;
k++;
}
}
for(int i=1;i<=n;i++)
if(!l[i])
{
l[i]=k;
k++;
}
printf("%lld",k-1);
return 0;
}