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

UVA 1197 - The Suspects

#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 i,n1,a,aa,xx,yy,j,cnt=0;
        for(i=0;i<=n;i++)
            par[i]=i;
        for(i=1;i<=m;i++)
        {
            cin>>n1;
            cin>>a;
            xx=find(a);
            for(j=1;j<n1;j++)
            {
                cin>>aa;
                yy=find(aa);
                if(xx!=yy)
                {
                    unionkorlam(a,aa);
                }
            }
        }
        xx=find(0);
        for(i=0;i<n;i++)
        {
            if(xx==find(i))
            {
                cnt++;
            }
        }
        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); ...