মঙ্গলবার, ২১ মার্চ, ২০১৭

UVA 10685 - Nature

#include<bits/stdc++.h>
#include <vector>
using namespace std;
vector<long>vec[5005];
long cnt=0,vis[5005]={0};
long bfs(long a)
{
    queue<long>q;
    q.push(a);
    cnt=0;
    long u,v,i1;
    while(!q.empty())
    {
        u=q.front();
        q.pop();
        for(i1=0;i1<vec[u].size();i1++)
        {
            v=vec[u][i1];
            if(vis[v]==0)
            {
                cnt++;
                vis[v]=1;
                q.push(v);
            }
        }
    }
    return cnt;
}
main()
{
    long n,m;
    while(cin>>n>>m)
    {
        long i;
        string s,s1;
        map<string,long>mp;
        if(n==0&&m==0)
            break;
        for(i=1;i<=n;i++)
        {
            cin>>s;
            mp[s]=i;
        }
        for(i=1;i<=m;i++)
        {
            cin>>s>>s1;
            vec[mp[s]].push_back(mp[s1]);
            vec[mp[s1]].push_back(mp[s]);
        }
        long ans=0,mx=0;
        for(i=1;i<=n;i++)
        {
            if(vis[i]==0)
            {
                ans=bfs(i);
                vis[i]=1;
                mx=max(mx,ans);
                ans=0;
            }
        }
        if(mx==0)
        {
            cout<<1<<endl;
        }
        else
            cout<<mx<<endl;
        for(i=1;i<=n;i++)
        {
            vec[i].clear();
            vis[i]=0;
        }
    }
}

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

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

Factorization with prime Sieve

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