// 2004国内予選 問題B #include #define N 30 //再帰呼び出しも用いた探索 void search(int room[N][N], int w, int h, int x, int y, int *ct) { int i; if(x<0 || x>=w || y<0 || y>=h || room[x][y]==1){ return; } //printf("(%d,%d)\n", x, y); (*ct)++; room[x][y]=1; search(room, w, h, x-1, y, ct); search(room, w, h, x, y-1, ct); search(room, w, h, x+1, y, ct); search(room, w, h, x, y+1, ct); } int main(void) { int w,h,x,y,sx,sy,ct; int room[N][N]; char line[N]; while(1){ fgets(line, N, stdin); sscanf(line, "%d %d", &w, &h); //printf("%d %d ", w, h); if(w==0 && h==0) break; for(y=0; y