229. Divide and conquer
time limit per test: 0.25 sec.
memory limit per test: 4096 KB
input: standard
output: standard
You are to write a program which will divide set Q of squares into two parts, in such a way that one of them can be presented as other after rotations on 90 degrees and shifts along some vector. Set Q is the subset of NxN square.
Input
The first line of the input contains the integer N (1 <= N <= 20). The following N lines contain description of the set Q (symbol '1' means that square belongs to Q and '0' otherwise).
Output
Write 'YES' in the first line of the output, if such division exists, and 'NO' otherwise. In the first case output one of the subsets of Q.
Sample test(s)
Input
Test #1
3
100
011
010
Test #2
3
100
101
010
Output
Test #1
YES
100
010
000
Test #2
NO
Author: | Andrew V. Lazarev |
Resource: | |
Date: | |