Photolog
Back to list of problems
Bicoloring
10004.c
#include <stdio.h>
#include <string.h>
int n,l;
int arr[205][205];
int col[205];
void
colorea(void) {
int i,j;
while (1) {
int done = 1;
for (i=0; i<n; i++) {
if (col[i] == 0) {
done=0;
}
if (col[i] != 0) {
for (j=0; j<n; j++) {
if (arr[i][j]) {
if (!col[j]) {
col[j] = (col[i] ^ 1);
}
if (col[j] != (col[i] ^ 1)) {
printf("NOT BICOLORABLE.\n");
return;
}
}
}
}
}
if (done) {
printf("BICOLORABLE.\n");
return;
}
}
}
int
main(void) {
int a,b;
int i;
while (1) {
scanf("%d %d", &n, &l);
if (n==0) {
return 0;
}
memset(arr, 0, sizeof(arr));
memset(col, 0, sizeof(col));
for (i=0; i<l; i++) {
scanf("%d %d", &a, &b);
arr[a][b] = arr[b][a] = 1;
}
col[0] = 2;
colorea();
}
}









