#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int g[220][220];
int vis[220];
bool color[220];
int n, m;
int bfs(int u)
{
for(int i = 0; i < n; i++)
if(g[u][i])
{
if(!vis[i])
{
vis[i] = 1;
color[i] = !color[u];
bfs(i);
}
else if(color[u] == color[i])
return 0;
}
return 1;
}
int main()
{
while(cin >> n, n)
{
memset(g, 0, sizeof(g));
memset(vis, 0, sizeof(vis));
cin >> m;
int a, b;
while(m--)
{
cin >> a >> b;
g[a][b] = g[b][a] = 1;
}
color[0] = 1;
vis[0] = 1;
if(bfs(0))
printf("BICOLORABLE.\n");
else
printf("NOT BICOLORABLE.\n");
}
return 0;
}
uva 10004 Bicoloring
最新推荐文章于 2018-04-08 21:11:11 发布