atcoder#AGC017E. [AGC017E] Jigsaw
[AGC017E] Jigsaw
Score : points
Problem Statement
We have irregular jigsaw pieces. Each piece is composed of three rectangular parts of width and various heights joined together. More specifically:
- The -th piece is a part of height , with another part of height joined to the left, and yet another part of height joined to the right, as shown below. Here, the bottom sides of the left and right parts are respectively at and units length above the bottom side of the center part.
Snuke is arranging these pieces on a square table of side . Here, the following conditions must be held:
- All pieces must be put on the table.
- The entire bottom side of the center part of each piece must touch the front side of the table.
- The entire bottom side of the non-center parts of each piece must either touch the front side of the table, or touch the top side of a part of some other piece.
- The pieces must not be rotated or flipped.
Determine whether such an arrangement is possible.
Constraints
- All input values are integers.
Input
Input is given from Standard Input in the following format:
:
Output
If it is possible to arrange the pieces under the conditions, print YES
; if it is impossible, print NO
.
3 4
1 1 0 0
2 2 0 1
3 3 1 0
YES
The figure below shows a possible arrangement.
4 2
1 1 0 1
1 1 0 1
1 1 0 1
1 1 0 1
NO
10 4
1 1 0 3
2 3 2 0
1 2 3 0
2 1 0 0
3 2 0 2
1 1 3 0
3 2 0 0
1 3 2 0
1 1 1 3
2 3 0 0
YES