শনিবার, ৪ মার্চ, ২০১৭

UVA 11518 - Dominos 2

#include<bits/stdc++.h>
#define fr(i,m) for(int i=0;i<m;i++)
using namespace std;
long vis[12010]={0},cnt=0;
vector<long>vec[100010];
long dfs(long n)
{
    long i1;
    if(vis[n]==1)
    return 0;
    if(vis[n]==0)
    cnt++;
    vis[n]=1;
    for(i1=0;i1<vec[n].size();i1++)
    {
        dfs(vec[n][i1]);
    }
    return cnt;
}
main()
{
    long ts;
    cin>>ts;
    while(ts--)
    {
        long a,b,c,x,y,x1,ans=0,i;
        cin>>a>>b>>c;
        for(i=0;i<b;i++)
        {
            cin>>x>>y;
            vec[x].push_back(y);
        }
        for(i=0;i<c;i++)
        {
            cin>>x1;
            cnt=0;
            ans+=dfs(x1);
        }
        cout<<ans<<endl;
        for(i=0;i<10010;i++)
        {
            vis[i]=0;
            vec[i].clear();
        }
    }
}

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

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

Factorization with prime Sieve

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