#include<iostream>
#include<cstdio>
#include<queue>
#include<vector>
#define M 205
using namespace std;
int list[M][M];
int main()
{
register int i,k=1,n,s,h,a,b,x,l,f;
int color[M],partition[M];
queue<int>Q;
//freopen("in.txt","r",stdin);
while(scanf("%d",&n)&&n)
{
scanf("%d",&l);
for(i=0;i<=n;i++)
list[i][0]=0;
for(i=1;i<=l;i++)
{
scanf("%d%d",&a,&b);
list[a][0]++;list[b][0]++;
list[a][list[a][0]]=b;
list[b][list[b][0]]=a;
}
s=a,f=1;
for(i=0;i<=n;i++)
color[i]=partition[i]=0;
color[s]=partition[s]=1;
Q.push(s);
while(!Q.empty())
{
h=Q.front();
for(i=1;i<=list[h][0];i++)
{
x=list[h][i];
if(partition[x]==partition[h])
{
f=0;break;
}
if(color[x]==0)
{
color[x]=1;
partition[x]=3-partition[h];
Q.push(x);
}
}
Q.pop();
color[h]=2;
}
if(f)
printf("BICOLORABLE.\n");
else
printf("NOT BICOLORABLE.\n");
}
return 0;
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.