//
// main.cpp
// Richard
//
// Created by 邵金杰 on 16/7/23.
// Copyright © 2016年 邵金杰. All rights reserved.
//
#include<iostream>
#include<cstring>
using namespace std;
const int maxn=50000+100;
int pa[maxn],sum[maxn];
int getroot(int a)
{
return pa[a]==a?a:pa[a]=getroot(pa[a]);
}
void merge(int u,int v)
{
int a=getroot(u);
int b=getroot(v);
if(a==b) return ;
pa[b]=a;
sum[a]+=sum[b];
sum[b]=0;
}
int main()
{
int m,n,u,v,kase=0;
while(cin>>m>>n&&(m||n))
{
int cnt=0;
for(int i=1;i<=m;i++) {pa[i]=i;sum[i]=1;}
for(int i=0;i<n;i++){
cin>>u>>v;
merge(u,v);
}
sort(sum+1,sum+m+1);
for(int i=m;i>=1;i--){
if(sum[i]>0) cnt++;
else break;
}
cout<<"Case "<<++kase<<": "<<cnt<<endl;
}
return 0;
}
POJ 2524 Ubiquitous Religions
最新推荐文章于 2019-10-26 17:33:13 发布