>>85
無理だった
バカみたいに詰めれば収めるのは出来るけど
それだと行数制限というより文字数制限になるしな
void check_r(int D[8][16], int B[8][16], int x, int y, int col, int mark, int *num){
if(x<0 || 8<=x || y<0 || 16<=y || D[x][y]!=0 || B[x][y]!=col) return;
*num+=1;
D[x][y]=mark;
check_r(D, B, x+1, y, col, mark, num);
check_r(D, B, x-1, y, col, mark, num);
check_r(D, B, x, y+1, col, mark, num);
check_r(D, B, x, y-1, col, mark, num);
}
void check(int D[8][16], int B[8][16]){
int x, y, num, mark=1, i, j;
memset(D, 0, sizeof(int)*8*16);
for(x=0;x<8;x++){
for(y=0;y<16;y++){
if(B[x][y]==0 || D[x][y]!=0) continue;
num=0;
check_r(D, B, x, y, B[x][y], ++mark, &num);
if(num>=4){
for(i=0;i<16;i++){
for(j=0;j<8;j++){
if(D[j][i]==mark) D[j][i]=1;
}
}
}
}
}
}