|
||||||||||
Recursive AntsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 141 Accepted Submission(s): 10 Problem Description In a 2^n*2^n chess board, some grids is marked visitable, and others are not. Mr. Ant is planning to visit all the visitable grids on the board, and each grid can be visited only once. Mr. Ant start from the left-top side of the board, and he should finish his journey at any grid on the edge of the board. Of course we assume that the start point of Mr. Ant is always visitable. In every step, Mr. Ant can move from one grid to the adjacent grid (that is to say he can move up, down, left, right in four directions). Mr. Ant¡¯s path is defined recursively. That is to say, if Mr. Ant wants to visit a 2^k*2^k chess board, then we divided the board into four pieces, and each one has a size of 2^(k-1)*2^(k-1), in every part, Mr. Ant should visit all the grids in the four parts and then move onto another. Of course, we should divided this 2^(k-1)*2^(k-1) board into four smaller pieces and Mr. Ant¡¯s path should be defined in these new four parts. Input The input-file consists of several test cases. There is a number n (1<= n <=7) in the beginning of each test case indicating that the width of the chess board: 2^n*2^n. Each of the next 2n lines contains a string. Character ¡®1¡¯ means visitable and ¡®0¡¯ means not. Input-file is end with an end-of-file character. Output For every case, you only need to output one line. Output ¡°YES¡± if Mr. Ant can finish his journey as described above, else output ¡°NO¡±. Sample Input
Sample Output
Source | ||||||||||
|