মঙ্গলবার, ১২ সেপ্টেম্বর, ২০১৭

UVA-10583 Ubiquitous Religions

#include<bits/stdc++.h>
using namespace  std;
long long  par[50010],vis[50010];
long long find(long long s)
{
    if(par[s]==s)
    {
        return s;
    }
    return par[s]=find(par[s]);
}
void unionkorlam(long long x,long long y)
{
    if(find(x)!=find(y))
        par[find(y)]=find(x);
}
main()
{
    long long n,m,cs=1;
    while(cin>>n>>m)
    {
        if(n==0&&m==0)
            break;
        long long i,a,b,cnt=0;
        for(i=1; i<=n; i++)
        {
            vis[i]=0;
            par[i]=i;
        }
        for(i=1; i<=m; i++)
        {
            cin>>a>>b;
            unionkorlam(a,b);
        }
        for(i=1; i<=n; i++)
        {
            long long xx=find(i);
            if(vis[xx]==0)
            {
                cnt++;
                vis[xx]=1;
            }
        }
        printf("Case %lld: ",cs++);
        cout<<cnt<<endl;

    }
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...