#include<stdio.h>
long long int par[50001],check[50001];
void par1(int n)
{
int i;
for(i=1;i<=n;i++)
{
par[i]=i;
check[i]=i;
}
}
int khoj_rep(int r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
int main()
{
long long int a,b,u,v,n,m,i,j=0,count;
while(scanf("%lld%lld",&n,&m)==2)
{
j++;
if(n==0&&m==0)
{
break;
}
par1(n);
count=0;
for(i=1;i<=m;i++)
{
scanf("%lld%lld",&a,&b);
u=khoj_rep(a);
v=khoj_rep(b);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
for(i=1;i<=n;i++)
{
if(par[i]==check[i])
{
count++;
}
}
printf("Case %lld: %lld\n",j,count);
}
return 0;
}
long long int par[50001],check[50001];
void par1(int n)
{
int i;
for(i=1;i<=n;i++)
{
par[i]=i;
check[i]=i;
}
}
int khoj_rep(int r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
int main()
{
long long int a,b,u,v,n,m,i,j=0,count;
while(scanf("%lld%lld",&n,&m)==2)
{
j++;
if(n==0&&m==0)
{
break;
}
par1(n);
count=0;
for(i=1;i<=m;i++)
{
scanf("%lld%lld",&a,&b);
u=khoj_rep(a);
v=khoj_rep(b);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
for(i=1;i<=n;i++)
{
if(par[i]==check[i])
{
count++;
}
}
printf("Case %lld: %lld\n",j,count);
}
return 0;
}
0 comments: (+add yours?)
Post a Comment