08/03/06 20:07:33
>>549
#define HEIGHT 4
#define WIDTH 4
typedef struct tab_board_t{
int num[HEIGHT][WIDTH];
}board_t;
int is_solvable(board_t *board){
int ret=1, x, y;
for(y=0;y<HEIGHT;y++){
for(x=0;x<WIDTH;x++){
ret=(ret+(board->num[y][x]/WIDTH-y))&1;
ret=(ret+((board->num[y][x]%WIDTH)-x))&1;
}
}
return ret;
}
/*
但し、完成した状態の定義を
board_t board={{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}};
とする
*/