সোমবার, ১৬ জানুয়ারী, ২০১৭

UVA 10004 Bicoluring

#include<stdio.h>
#include<bits/stdc++.h>
#define mx 100000
using namespace std;
long  vis[10000]={-1};
main()
{
    long long ts;
    while(cin>>ts)
    {
        vector<long>vec[100000];
        queue<long>qu;
        memset(vis,-1,sizeof(vis));
        long n,x,y,i,u,v,len;
        if(ts==0)
            break;
        cin>>n;
        for(i=0;i<n;i++)
        {
            cin>>x>>y;
            vec[x].push_back(y);
            vec[y].push_back(x);
        }
        long flag=0;
        vis[0]=0;
        qu.push(0);
        while(!qu.empty())
        {
            u=qu.front();
            qu.pop();
            len=vec[u].size();
            for(i=0;i<len;i++)
            {
                v=vec[u][i];
                if(vis[v]==-1)
                {
                    if(vis[u]==0)
                        vis[v]=1;
                    else
                        vis[v]=0;
                    qu.push(v);
                }
                else
                {
                    if(vis[v]==vis[u])
                    {
                        flag=1;
                        break;
                    }
                }
            }
            if(flag==1)
                break;
        }
        if(flag==0)
            cout<<"BICOLORABLE."<<endl;
        else
            cout<<"NOT BICOLORABLE."<<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); ...