Untitled
unknown
plain_text
2 years ago
29 kB
14
Indexable
Hugo Đào Vàng 2
Hugo đào vàng trả nợ
Sau khi ăn trộm được mật của chị ong nâu và say sưa thưởng thức mật ngọt say đắm thì bất ngờ Hugo bị chị ong nâu phát hiện. Mặc dù đã thành khẩn nhận lỗi và xin lỗi chị ong nâu nhưng do đã đánh chén gần hết số mật đã ăn chộm nên chị ong nâu vẫn bắt Hugo phải bồi thường số mật đó. Hugo thì làm sao có thể kiếm mật được vì vậy Hugo phải đi đào vàng kiếm tiền để có tiền mua mật trả cho chị ong nâu.
Một cách tình cờ Hugo có được bản đồ của một khu vực chứa vàng, bản đồ được vẽ dựa trên một ma trận NxN. Trong ma trận có các điểm chứa vàng có thể khai thác (Tối đa 4 điểm). Hàng ngày Hugo sẽ phải đi tới mỏ vàng để khai thác và cuối ngày sẽ phải mang vàng trở về. Để tiết kiệm chi phí và thời gian, Hugo quyết định cắm trại trên gần mỏ vàng để tiện khai thác vàng. Hugo không thể di chuyển qua khu vực đá và không thể cắm trại trên đá, đồng thời Hugo cũng không thể cắm trại tại khu vực mỏ vàng, thời gian để Hugo di chuyển qua mỗi ô là 1 giờ.
Hãy giúp Hugo tìm địa điểm tối ưu để đi khai thác tất cả các mỏ vàng nhanh nhất.
Xem xét ma trận mỏ vàng 5x5 bên dưới:
X
1
2
X: Vị trí
Gold
Đá
Đường
Có 2 mỏ vàng, nếu Hugo cắm trại tại vị trí X, Hugo sẽ mất 4 giờ để đi tới mỏ vàng thứ 1, và 6 giờ để đi tới mỏ vàng thứ 2, vì vậy thời gian nhỏ nhất để Hugo đi khai thác vàng là 6 giờ, thời gian lớn nhất để đi khai thác của tất cả các mỏ vàng.
Xem xét ví dụ khác:
X
X
X
Thời gian là 4
Thời gian là 1
Thời gian là 3
Thời gian tối ưu với ma trận mỏ vàng trên là 1.
Một mỏ vàng được coi là không thể tiếp cận khi không thể đặt 1 vị trí cắm trại nào để đi khai thác vàng.
[Input]
Số trường hợp thử nghiệp T (T ≤ 50)
Mỗi TC :
- Dòng đầu tiên chứa kích thước ma trận N (N ≤ 20) và số mỏ vàng G (2 ≤ G ≤ 4)
- G dòng tiếp theo đưa ra vị trí R (hàng) & C (cột) của mỏ vàng (Chỉ số bắt đầu từ 1)
- N dòng tiếp theo là thông tin ma trận: 1 là có đường đi và vị trí mỏ vàng, 0 là đá (không thể đi qua).
[Output]
In ra chi phí nhỏ nhất để đi từ trại tới điểm đào vàng xa nhất. Nếu không thể tiếp cận tất cả các mỏ vàng, in ra -1
Case #1
1
Case #2
2
Case #3
2
[Constraints]
- Hugo có thể đi theo 4 hướng (trên/dưới/trái/phải)
- Hugo không thể cắm trại ở vị trí mỏ vàng hoặc
- Hugo có thể đi qua mỏ vàng để đến mỏ vàng
- Hugo cần đặt vị trí trại để tối đa hóa số lượng mỏ vàng có thể khai thác
50
5 2
4 3
3 4
1 1 0 0 0
1 1 0 0 0
1 1 1 1 1
1 1 1 0 1
1 1 1 1 1
8 2
5 6
6 4
1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 0
1 1 0 1 0 1 1 0
1 1 1 1 0 1 1 0
1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
10 3
8 2
5 3
7 1
0 0 0 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 0
1 0 0 1 0 0 0 0 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 0 1 0 0 1 1
1 1 1 1 0 1 0 0 1 1
1 1 1 1 0 1 0 0 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 0 0 1 0 0 1 1
1 1 1 1 1 1 1 1 1 1
8 3
1 2
2 8
5 8
0 1 0 0 0 0 0 0
0 1 0 1 1 1 1 1
0 1 0 1 0 0 0 1
0 1 1 1 0 0 0 1
0 1 0 1 0 0 0 1
0 1 0 1 1 1 1 1
0 1 0 0 1 0 0 0
0 1 0 0 1 0 0 0
10 4
9 6
1 9
7 5
6 6
1 1 1 1 1 0 0 1 1 1
1 1 0 1 1 1 1 0 0 0
0 1 0 1 1 0 1 1 1 1
0 1 0 0 1 1 1 1 0 1
0 1 0 0 1 0 1 1 1 1
1 1 0 0 1 1 0 1 1 1
1 1 0 0 1 1 1 1 1 1
0 1 0 1 1 0 0 0 1 0
1 0 1 0 1 1 1 1 1 0
0 1 1 1 1 1 0 0 1 0
10 3
10 4
6 7
4 5
0 0 1 0 0 0 1 0 1 0
1 1 0 1 1 1 1 1 0 1
1 1 0 1 1 0 1 1 0 0
1 1 1 1 1 0 1 1 1 1
0 1 0 1 0 1 1 1 0 1
1 0 1 0 1 1 1 1 1 1
0 0 0 0 0 1 1 0 1 1
0 1 0 1 1 1 1 1 0 1
1 0 0 1 1 1 1 1 1 0
1 1 1 1 1 0 1 1 0 1
10 3
8 8
6 9
7 8
0 1 1 1 0 0 0 0 1 1
1 1 1 1 1 0 0 1 1 1
1 1 1 1 1 0 1 1 0 1
0 1 0 0 1 1 1 1 1 1
0 0 0 1 0 1 0 1 1 1
0 1 1 1 1 1 1 0 1 1
0 0 0 0 1 1 1 1 1 1
1 0 0 1 1 1 0 1 1 1
0 1 0 1 1 1 1 1 1 1
0 1 0 1 0 1 1 1 1 1
10 3
5 2
8 2
4 6
1 1 1 0 0 1 1 1 1 1
1 1 0 1 0 1 1 1 1 0
1 1 0 1 1 1 0 1 1 1
0 1 1 1 1 1 0 0 0 1
0 1 1 0 1 0 1 1 1 1
1 1 0 1 1 1 1 1 1 0
0 1 0 1 1 1 1 1 0 1
1 1 1 1 1 1 0 1 1 1
1 1 1 0 1 1 1 1 1 0
1 0 0 1 0 1 1 1 1 1
10 4
8 3
1 2
9 5
5 7
1 1 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 0 1 1 1
0 1 0 1 1 1 1 0 1 1
0 0 0 1 1 0 1 0 1 0
1 1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 1 1 1 1
0 0 1 0 1 0 1 1 1 1
1 1 1 0 1 1 1 1 1 1
0 0 1 1 1 1 1 0 1 1
10 2
8 4
1 10
1 0 1 1 0 1 1 1 0 1
0 0 0 1 0 0 1 0 1 1
1 1 0 0 1 1 0 0 1 1
1 1 0 1 1 0 1 1 0 1
1 1 1 1 0 1 1 1 1 0
1 1 0 1 0 1 1 0 0 1
1 1 0 1 1 1 0 1 1 0
1 1 1 1 0 1 0 1 1 0
1 0 1 0 1 0 1 1 1 1
0 1 0 1 0 1 1 1 1 1
10 4
3 4
4 3
4 5
6 10
1 0 0 1 1 0 0 0 1 0
1 1 1 1 0 1 1 0 1 0
1 0 0 1 0 1 1 1 0 1
1 0 1 0 1 1 1 1 1 0
0 1 0 0 1 1 1 1 0 0
1 1 0 0 1 1 1 0 1 1
1 0 0 1 0 1 0 1 1 0
1 0 1 1 0 0 1 1 0 0
1 1 1 1 1 1 1 1 0 1
1 1 1 1 1 0 0 1 1 1
10 2
4 6
4 8
0 0 0 1 1 0 0 1 1 1
1 1 1 0 1 1 1 0 1 0
1 0 1 1 0 1 1 0 1 0
1 0 1 1 0 1 1 1 0 0
1 1 1 1 0 1 1 1 1 1
0 1 1 0 1 1 0 1 1 1
1 0 1 0 1 1 1 0 1 1
0 1 1 0 0 1 1 1 1 1
0 0 1 0 0 1 0 1 1 0
1 1 0 0 1 0 1 1 0 0
10 3
6 6
2 5
6 8
0 1 1 1 1 1 1 0 1 1
1 1 0 1 1 0 1 1 0 1
0 1 0 1 0 1 1 0 1 1
0 0 1 1 0 0 1 1 1 0
1 1 0 1 1 1 1 0 0 1
1 1 1 0 0 1 0 1 0 0
1 0 0 0 0 0 0 1 1 1
1 1 1 1 0 1 1 1 1 1
1 1 1 0 1 1 0 1 0 1
0 1 1 1 0 1 1 1 0 1
10 4
3 2
6 7
3 9
7 9
0 0 0 1 0 1 0 0 0 1
0 1 0 1 0 0 1 0 1 1
0 1 1 1 0 1 0 1 1 0
1 1 0 1 0 1 1 0 0 1
0 1 1 1 0 1 1 1 0 1
1 0 1 1 1 1 1 1 1 1
0 1 1 0 1 1 1 1 1 1
0 0 1 1 0 0 1 1 1 1
1 1 1 1 0 1 1 1 0 1
1 0 0 1 0 1 0 0 1 0
10 4
1 7
2 4
9 10
7 2
1 1 0 1 1 0 1 1 1 1
1 1 0 1 1 1 0 1 1 0
1 1 0 1 0 1 0 0 1 1
1 0 1 1 0 1 1 0 0 1
1 0 0 0 0 0 1 1 1 0
1 1 0 0 1 0 0 1 1 1
0 1 1 1 1 1 1 0 1 0
1 1 1 1 1 0 0 1 0 0
0 1 0 1 1 0 0 1 0 1
1 1 1 1 1 0 1 0 0 0
10 2
2 2
3 6
0 1 1 1 0 1 0 1 1 1
1 1 1 0 0 1 1 1 1 0
0 0 0 0 1 1 0 1 1 0
0 1 0 0 0 1 0 0 1 1
1 1 1 1 1 1 0 1 0 1
1 1 1 1 0 1 1 1 0 0
1 1 0 0 1 1 1 1 1 0
1 0 1 0 0 0 0 1 1 0
0 1 0 1 1 1 1 1 1 1
1 1 1 1 1 0 1 0 1 1
10 4
1 4
9 5
4 3
1 6
0 0 1 1 1 1 1 1 0 1
1 1 1 0 0 0 1 0 0 1
1 1 1 0 1 0 1 0 0 0
1 1 1 1 1 1 1 1 1 0
0 1 0 1 0 0 1 1 1 0
0 1 1 0 1 0 0 1 1 1
1 1 1 1 1 1 0 0 1 1
1 0 1 1 1 1 1 1 1 1
1 1 1 0 1 1 1 1 0 1
1 1 1 0 1 1 1 1 0 0
10 2
10 10
10 6
1 1 1 0 1 0 1 1 1 1
1 0 1 1 1 0 0 0 1 0
1 1 1 1 0 0 1 1 1 0
1 1 1 0 0 1 1 1 1 0
0 1 0 1 0 1 0 0 0 1
1 1 0 1 1 0 0 1 0 1
1 0 1 1 1 0 0 0 0 1
1 0 0 1 1 1 1 1 0 0
0 1 1 1 1 1 1 0 1 0
1 1 0 0 1 1 0 1 0 1
10 3
6 8
9 6
6 5
0 1 0 0 1 1 0 1 0 1
0 1 0 0 1 1 1 1 0 1
1 0 1 0 0 1 1 1 1 1
1 1 0 0 1 1 1 1 0 1
0 0 1 0 0 0 1 1 1 0
1 0 1 1 1 1 0 1 1 1
1 1 1 1 0 0 1 0 1 1
1 1 1 1 1 0 1 0 1 1
0 1 0 0 1 1 1 1 0 0
1 1 1 1 1 1 1 1 1 1
10 3
9 4
4 2
9 10
1 1 1 0 0 1 0 1 1 0
1 1 1 1 1 1 1 1 1 1
1 0 1 1 1 1 1 0 0 0
0 1 0 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1 0 1
0 1 0 0 1 1 1 1 1 1
1 1 0 0 0 1 1 1 1 0
1 1 1 1 0 1 1 0 1 1
0 1 1 1 1 1 1 1 1 1
0 1 0 1 1 1 1 1 0 0
12 4
8 4
6 3
12 5
5 7
1 0 1 1 0 1 0 0 0 0 1 1
1 1 0 0 0 1 1 1 1 0 0 1
1 0 1 0 0 0 0 1 1 0 1 1
0 1 0 1 1 1 1 0 1 1 0 1
0 0 0 1 1 0 1 1 0 1 0 0
0 1 1 1 1 1 0 0 1 1 0 0
1 1 1 0 1 1 1 1 0 1 1 0
1 1 1 1 1 1 1 1 1 1 1 1
1 1 0 1 1 0 0 1 1 1 1 1
0 1 0 1 0 1 1 1 1 1 1 1
1 1 1 1 1 0 1 0 1 0 1 1
1 0 1 1 1 0 0 1 1 1 1 1
12 2
6 11
6 12
1 0 0 0 1 1 0 1 1 0 1 1
1 1 1 1 1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 0 1
1 1 0 0 1 0 1 1 0 0 1 0
0 1 0 1 0 0 0 1 1 0 0 0
1 0 1 0 1 1 1 1 1 0 1 1
0 0 1 0 1 0 1 1 1 0 1 0
1 0 1 0 1 0 0 0 0 0 1 0
0 0 0 1 1 1 0 0 0 1 0 1
0 1 1 1 1 1 1 0 0 0 0 1
1 1 0 0 0 1 1 0 1 0 1 0
1 1 0 1 0 0 1 0 0 1 1 1
12 4
11 2
2 7
8 5
12 6
0 0 1 0 1 1 0 0 0 1 1 1
1 0 1 1 0 0 1 1 0 1 1 1
1 1 0 1 0 1 0 1 1 1 1 1
0 1 1 0 1 0 1 1 1 1 0 1
1 1 1 0 0 0 0 0 0 1 1 1
1 1 0 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 0 1 1 1 0 1
0 1 0 0 1 1 1 1 1 1 1 0
1 0 0 1 1 1 0 0 1 1 0 1
0 0 1 0 1 0 1 1 1 0 1 1
0 1 1 1 1 1 1 0 1 0 0 0
1 0 0 0 0 1 1 0 1 1 1 0
12 4
7 3
11 5
2 10
10 2
0 1 1 1 0 1 1 0 1 1 0 1
1 0 1 1 1 0 1 1 1 1 0 0
0 0 1 1 1 0 1 0 1 1 1 1
1 1 0 1 1 1 0 1 1 1 1 0
1 1 0 1 0 1 1 1 1 0 1 1
0 1 0 0 0 0 1 0 1 1 1 0
0 0 1 1 1 0 1 0 1 0 1 1
1 1 1 1 0 0 1 1 1 1 1 1
1 0 1 0 1 0 1 1 0 1 0 0
0 1 1 1 1 1 1 1 1 0 0 0
1 1 1 1 1 1 1 1 0 0 0 1
1 0 1 0 1 0 1 1 0 1 1 1
12 4
4 3
5 5
11 10
10 10
0 1 0 0 1 1 1 1 1 1 1 0
1 1 1 0 1 1 0 1 1 1 0 0
1 1 0 1 0 1 1 0 1 1 1 1
0 0 1 1 0 1 1 1 1 0 1 1
0 1 1 1 1 0 0 1 0 1 1 1
1 1 1 0 1 0 0 0 0 0 0 0
1 1 1 0 1 1 1 1 1 0 1 0
1 1 1 0 1 1 1 0 1 1 0 1
1 1 1 0 1 0 1 1 0 0 1 0
1 1 1 1 1 1 1 1 0 1 0 1
0 0 1 1 1 1 1 1 0 1 1 1
1 0 0 1 1 0 1 1 1 0 1 1
12 2
11 10
3 6
1 1 1 0 0 1 1 0 0 1 0 0
1 1 0 1 1 1 0 1 1 1 1 1
1 0 1 0 0 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1 1 0 0
1 1 1 1 1 1 1 0 1 0 1 1
0 1 1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 0 1 1 0
1 1 0 1 1 0 0 1 0 1 1 1
1 1 0 1 0 1 1 1 1 1 0 0
1 1 0 0 1 0 1 1 1 1 1 0
1 0 1 0 1 0 0 0 0 1 1 1
1 1 0 1 1 1 0 1 1 1 0 1
12 2
2 11
1 7
0 1 1 1 1 1 1 0 0 1 1 1
1 1 0 0 1 0 1 0 1 1 1 1
1 0 1 0 1 1 0 1 0 1 0 1
1 1 0 1 0 1 0 0 1 1 1 1
0 1 0 1 1 1 1 0 1 0 1 0
1 1 1 1 1 1 1 1 0 0 1 0
1 1 1 1 0 1 1 1 1 0 0 0
1 1 0 1 0 0 0 1 1 1 0 1
1 1 1 0 1 0 0 0 1 1 0 0
1 1 0 1 0 0 1 1 1 1 1 0
0 1 0 0 1 1 1 1 1 0 1 1
1 1 0 1 1 1 0 0 1 1 0 0
12 2
3 9
9 8
1 1 1 1 1 1 1 1 0 1 1 1
1 1 1 1 1 0 1 1 0 0 1 1
1 0 1 0 1 0 1 1 1 0 1 1
0 1 1 1 1 0 1 1 0 1 1 0
1 0 0 0 0 1 0 0 1 1 1 1
0 1 1 1 1 1 1 0 0 0 1 1
1 0 0 1 1 1 1 1 0 0 1 0
1 1 1 0 1 0 0 0 1 1 1 1
1 1 1 1 0 0 0 1 1 1 1 0
1 1 0 1 1 0 0 1 0 1 0 0
0 1 1 1 0 1 0 1 0 0 1 1
0 0 0 1 1 1 1 0 0 1 1 0
12 3
5 2
12 7
10 10
1 1 1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 0 1 0 0 0 1
1 0 1 1 0 1 1 0 1 0 1 1
0 1 1 0 1 1 0 1 1 1 1 1
1 1 1 1 1 0 0 1 1 1 0 1
1 0 1 1 1 0 1 0 1 0 1 1
0 0 1 1 0 1 1 0 1 1 1 0
0 0 0 1 0 1 0 1 1 0 1 1
1 1 1 1 1 1 1 1 0 1 1 1
1 0 0 1 0 0 0 1 0 1 1 1
1 0 1 0 1 0 1 1 1 1 1 1
0 0 1 1 0 1 1 0 0 0 0 1
12 2
8 3
8 9
1 1 0 0 1 0 0 1 0 1 1 0
0 0 1 1 0 0 0 1 1 1 0 0
1 1 0 1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 0 1 1 0 0 1 0 1 1
0 1 1 1 1 0 1 0 1 0 1 0
1 0 1 1 1 1 1 1 1 0 0 0
1 1 1 1 0 1 0 1 0 1 1 0
1 1 1 1 1 1 0 0 1 0 0 1
1 1 0 1 0 0 0 0 1 1 0 1
1 1 0 1 0 1 1 1 0 1 0 0
15 2
7 14
1 13
1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
1 0 0 1 1 0 1 1 1 0 1 1 1 1 1
1 1 1 0 0 1 1 1 1 0 0 1 1 1 0
0 1 1 0 1 0 1 0 1 1 0 1 1 1 1
0 1 0 1 1 1 1 0 1 1 1 0 1 0 1
1 0 1 1 1 1 1 1 0 0 1 0 0 0 1
0 1 0 0 1 0 1 1 1 0 1 1 1 1 1
0 1 0 0 1 0 1 1 1 0 0 1 0 0 1
1 1 1 0 1 1 1 1 1 1 0 1 1 1 0
0 1 1 1 0 1 1 1 1 1 1 1 1 1 1
1 1 1 0 1 0 1 1 1 0 1 1 0 1 0
1 1 0 0 0 0 1 1 0 1 1 1 1 0 1
1 1 0 1 0 1 1 1 0 1 1 1 0 0 1
0 0 1 1 1 1 0 1 0 0 0 1 1 1 0
0 1 1 1 1 1 1 0 1 0 0 1 1 0 0
15 4
15 3
3 9
1 8
5 2
1 0 1 0 1 1 0 1 1 1 0 1 0 1 1
1 1 0 0 0 1 1 1 1 0 1 0 1 1 1
0 1 1 1 1 0 1 0 1 1 0 1 0 0 1
1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
0 1 1 0 1 1 1 0 0 1 0 0 1 0 0
1 1 1 1 1 0 1 0 0 0 1 1 0 1 1
1 0 0 0 1 1 1 0 1 1 1 0 1 1 1
1 1 0 1 1 0 1 1 1 1 0 1 1 0 1
1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
1 1 0 1 0 1 1 1 1 0 1 1 1 0 0
0 1 0 1 1 0 1 0 0 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 0 0
1 0 1 0 0 1 1 1 1 0 1 0 0 0 1
1 0 1 1 1 1 1 1 1 0 0 0 1 0 0
1 1 1 0 1 1 0 1 0 0 1 1 0 1 0
15 4
2 8
14 14
5 8
3 4
1 1 1 0 0 1 0 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
1 0 1 1 0 1 1 0 1 0 0 0 1 1 1
1 1 1 1 1 1 1 1 0 0 0 1 1 1 1
1 1 0 0 1 0 1 1 1 0 0 1 1 0 1
0 1 1 1 1 0 1 1 1 1 1 1 1 1 1
0 1 0 1 1 1 0 1 0 0 1 0 0 1 1
1 0 0 1 1 1 0 0 1 0 1 0 1 0 0
1 1 1 0 1 1 1 1 1 1 0 1 0 1 1
0 0 0 1 1 0 1 1 1 1 1 0 1 1 1
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
1 1 0 1 1 0 1 1 0 1 1 1 1 1 1
0 1 0 1 1 1 1 0 1 0 1 1 1 1 1
1 1 0 0 0 1 1 0 1 1 0 0 0 1 0
1 1 1 0 0 1 1 0 1 1 1 1 1 0 1
15 3
11 15
12 3
9 2
0 1 1 1 0 1 1 0 1 0 1 1 1 1 1
0 1 0 0 0 0 1 0 1 1 0 1 0 0 1
1 1 1 1 1 0 0 0 1 1 1 0 1 1 0
1 0 1 1 1 1 1 0 1 1 1 1 1 1 1
1 0 1 0 1 1 0 0 0 1 1 1 1 0 1
0 1 1 0 0 0 0 1 1 1 1 1 0 0 0
0 1 0 1 1 1 0 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 0 1 1 1 1 1 0 1
0 1 1 1 0 1 1 1 1 0 1 1 0 1 1
1 1 1 1 1 1 0 1 1 1 1 1 0 1 0
0 0 1 0 1 1 0 1 0 1 1 0 0 1 1
1 0 1 0 1 1 0 1 1 0 1 1 0 1 1
1 1 1 1 1 0 1 0 0 0 1 0 1 1 1
1 0 1 0 1 1 1 1 0 1 1 0 1 0 0
0 1 0 0 1 1 0 1 0 0 0 0 1 1 1
15 3
2 2
1 7
3 13
1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
1 1 0 0 0 1 0 1 1 0 1 1 0 1 1
0 1 0 1 1 1 1 1 1 0 1 0 1 1 0
1 0 1 1 1 1 0 1 1 1 1 1 1 0 1
0 1 0 1 0 0 1 0 0 0 1 1 1 0 1
0 0 0 0 1 1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 0 1 1 1 0 1 1 1
1 1 1 1 1 0 0 1 0 1 1 1 1 0 1
1 1 1 0 1 1 0 1 0 1 1 0 1 0 1
1 1 1 1 1 0 0 1 1 0 0 0 1 0 0
1 1 1 0 1 1 1 1 1 1 1 1 0 0 0
0 1 1 1 1 0 1 0 0 1 0 1 1 0 1
1 0 1 0 1 1 1 1 1 1 1 0 0 0 0
0 1 0 0 1 0 1 1 1 1 1 0 0 0 0
1 0 1 1 1 1 1 1 1 0 1 0 1 0 1
15 4
6 8
11 2
11 5
12 12
0 1 0 1 1 1 0 1 1 0 0 1 1 1 1
0 0 1 0 1 1 0 1 1 1 1 1 1 1 1
1 1 1 0 1 0 1 0 1 1 1 1 1 1 0
1 1 1 1 1 1 0 1 1 1 1 1 0 1 1
1 1 1 0 0 1 0 1 0 1 1 1 0 1 1
0 1 1 1 1 1 1 1 1 1 0 1 1 1 1
0 1 1 0 1 1 0 0 1 0 0 1 1 0 1
1 1 1 1 1 1 1 0 0 1 1 1 1 1 0
1 0 0 0 1 1 0 0 0 1 0 1 0 0 0
1 0 1 0 1 0 1 0 1 1 0 0 0 1 1
0 1 1 1 1 1 0 1 1 1 1 1 1 1 1
1 1 1 0 1 0 1 1 1 1 1 1 1 1 1
1 1 1 1 0 1 0 1 1 0 1 1 1 1 1
0 0 1 0 0 1 1 0 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 0 1 0 1 1 1
15 4
6 10
4 15
15 8
2 9
1 1 0 1 0 1 1 1 0 1 1 0 1 1 1
1 1 1 0 0 1 1 0 1 0 1 0 1 1 0
1 0 1 1 0 1 1 1 1 0 0 0 1 0 0
1 0 0 1 1 1 1 1 0 0 1 1 1 1 1
1 1 1 1 1 1 0 0 1 0 0 1 1 0 1
1 0 1 1 1 0 1 1 0 1 1 0 0 1 0
0 0 0 1 1 1 1 0 0 1 0 0 0 1 1
0 1 1 1 1 0 0 1 1 1 1 1 1 0 1
1 0 1 1 0 0 1 0 0 1 1 0 0 1 0
1 1 1 0 1 0 1 1 0 0 1 0 1 1 1
1 1 1 0 1 1 1 0 1 1 0 1 1 1 1
0 1 1 1 1 1 1 1 0 1 1 1 1 0 1
1 1 0 0 0 1 0 1 1 1 1 1 1 1 1
0 1 1 0 1 0 1 1 0 1 0 1 1 1 1
0 0 1 1 1 0 1 1 1 0 0 1 1 0 1
15 3
3 9
7 13
11 5
1 0 0 1 1 0 0 1 1 0 1 1 1 1 1
1 1 0 0 0 1 1 1 1 0 0 1 1 0 1
0 0 1 0 1 1 1 1 1 1 1 1 0 0 1
1 1 1 0 1 1 0 1 0 1 0 1 0 1 1
0 1 0 1 1 0 1 1 1 1 1 1 1 0 0
1 0 1 0 1 1 1 1 0 1 0 1 0 1 0
1 0 1 0 1 1 1 1 1 1 1 1 1 0 1
1 1 0 1 1 0 1 1 0 1 1 1 1 1 0
0 1 1 1 1 1 1 0 1 1 1 1 0 1 1
0 1 1 0 0 0 1 0 0 1 0 0 1 1 1
1 0 1 1 1 1 0 1 1 0 1 0 1 1 1
1 1 0 1 0 1 1 0 1 1 1 1 1 0 0
0 1 0 1 1 0 1 1 1 1 1 1 0 0 0
1 1 0 0 1 0 1 1 1 1 1 0 1 1 1
1 0 0 1 1 1 0 1 0 1 1 1 1 1 0
15 2
7 11
10 8
1 0 1 1 1 1 0 0 1 0 1 1 0 1 1
1 1 0 1 0 1 1 0 1 1 0 0 0 1 1
1 0 0 1 1 1 0 1 0 1 0 1 0 1 1
1 0 1 1 0 0 1 0 1 1 0 1 0 1 0
1 1 1 0 1 1 0 1 1 1 1 1 1 1 0
1 1 1 0 1 0 1 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 0 1 1 1 1 0 1 0
1 1 1 1 0 1 1 0 1 1 1 0 1 0 1
1 1 1 1 1 1 0 1 1 1 1 1 1 0 1
0 0 0 0 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 0 1 1 0 0 1 0 1 0 0
0 1 1 0 1 1 1 1 0 1 1 0 1 1 0
1 1 0 1 1 1 0 1 1 0 0 1 1 1 0
1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
0 1 1 1 1 0 0 0 1 1 1 1 1 1 1
15 3
12 8
6 8
10 13
1 1 1 1 1 0 1 1 1 1 1 1 1 1 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1 0 0 1 1 0 1 1
1 0 1 1 0 1 0 1 0 0 1 0 1 1 1
1 1 0 0 1 1 0 1 0 0 0 0 1 1 1
1 1 0 1 0 1 1 1 0 0 0 1 0 1 1
1 0 1 1 1 1 1 1 1 0 1 1 0 1 0
0 1 1 0 1 0 0 0 0 0 0 0 0 0 1
1 1 1 1 0 1 0 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 0 1 0 1 1 0 1
1 0 1 0 1 1 1 1 1 1 1 1 1 0 1
1 1 1 1 1 0 1 1 1 1 0 1 1 1 1
1 1 1 0 1 0 1 1 1 1 0 1 0 0 1
1 1 1 1 1 1 1 1 1 0 0 1 1 1 1
1 0 1 1 0 1 0 0 0 1 0 0 1 1 1
20 2
5 14
18 17
0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1
1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0
1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0
1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1
1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1
1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1
0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1
1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1
1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1
1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1
1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 1
1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1
1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1
1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1
1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0
1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0
1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0
1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0
0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 1 1 1
0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0
20 3
12 4
20 4
17 2
1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0
1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1
1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 0
0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1
1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0
1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0
1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1
1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1
1 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 1 0 0
0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1
1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1
0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1
0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1
1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0
0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1
0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0
0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0
1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1
20 2
18 14
8 13
0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1
0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1
0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1
1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1
1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0
1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1
1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0
1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0
1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1
1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1
1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1
0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1
0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0
0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0
0 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1
0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1
1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0
1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0
1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0
20 2
6 16
16 6
1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0
1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0
1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1
1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 1
1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1
0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1
1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0
1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1
1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0
1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1
1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1
1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1
0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0
0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 0
1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1
1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1
1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1
1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1
20 4
20 13
15 16
13 9
3 9
0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1
1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1
1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1
1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 1 1
1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0
1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0
1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 0
1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1
1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0
0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1
0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1
0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1
0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0
1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1
0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1
0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1
0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0
1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1
0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1
20 3
18 2
18 11
11 16
1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1
0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1
1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1
0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0
1 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1
1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0
1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0
0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1
0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0
1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1
1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 0 1 1
0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1
0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0
0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0
1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0
1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1
0 0 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1
0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1
0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1
20 3
8 4
5 10
9 14
1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1
0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1
1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1
0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0
1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0
1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0
0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0
1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1
0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0
0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1
1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1
0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0
1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1
1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1
1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1
0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1
1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1
1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1
0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1
20 2
9 4
1 10
1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1
1 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1
1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0
1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0
0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1
1 0 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0
1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1
1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1
0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0
1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0
1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0
1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0
1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1
1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1
1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1
1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1
0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0
20 4
2 10
12 6
8 17
1 3
1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0
0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0
1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0
0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1
1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1
1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1
1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1
1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0
1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0
0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1
1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1
1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1
1 0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0
1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1
1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1
1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1
1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1
20 2
17 2
20 20
0 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 1
1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1
0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0
1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0
0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1
1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0 1
1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1
1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1
1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0
1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1
1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0
0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1
1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0
0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0
1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 0
1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0
0 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0
0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0
0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 0
0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 1
#include <iostream>
#define MIN 99999999
using namespace std;
int n, g;
int arr[21][21];
int visited[21][21];
int dR[4] = { -1, 0, 1, 0 };
int dC[4] = { 0, 1, 0, -1 };
int arrTG[5][21][21];
typedef struct Point{
int x, y;
};
Point G[5];
typedef struct Queue {
int front, rear;
Point data[10001];
};
void init(Queue& Q) {
Q.front = Q.rear = -1;
}
void push(Queue& Q, Point value) {
Q.rear++;
Q.data[Q.rear] = value;
}
Point top(Queue& Q) {
Point temp;
Q.front++;
temp = Q.data[Q.front];
Q.front--;
return temp;
}
void pop(Queue& Q) {
Q.front++;
}
bool empty(Queue& Q) {
if (Q.front == Q.rear)
return true;
return false;
}
Queue Q;
void BFS(int index, Point P){
init(Q);
push(Q, P);
visited[P.x][P.y] = 1;
arrTG[index][P.x][P.y] = 0;
while(!empty(Q)){
Point P1;
P1 = top(Q);
pop(Q);
for(int k=0; k<4; k++){
int x = P1.x + dR[k];
int y = P1.y + dC[k];
if(x>=1 && x<=n && y>=1 && y<=n && visited[x][y] == 0 && arr[x][y] != 0){
visited[x][y] = 1;
arrTG[index][x][y] = arrTG[index][P1.x][P1.y] + 1;
Point P2;
P2.x = x;
P2.y = y;
push(Q, P2);
}
}
}
}
void reset1(){
for(int v=1; v<=g; v++){
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
arrTG[v][i][j] = -1;
}
}
}
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
arr[i][j] = 0;
}
}
}
void reset2(){
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
visited[i][j] = 0;
}
}
}
int main(){
//freopen("vao.txt", "r", stdin);
int t;
cin >> t;
for(int tc=1; tc<=t; tc++){
cin >> n >> g;
reset1();
int r, c;
for(int i=1; i<=g; i++){
cin >> r >> c;
G[i].x = r;
G[i].y = c;
arr[r][c] = 1;
}
int g1 = 0;
int m;
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
cin >> m;
arr[i][j] += m;
if(arr[i][j] == 2)
g1++;
}
}
for(int v=1; v<=g; v++){
reset2();
Point P;
P.x = G[v].x;
P.y = G[v].y;
BFS(v, P);
}
int sumV = -1;
int MinTG = MIN;
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
if(arr[i][j] == 1){
int countV = 0;
int MaxTG = -1;
for(int v=1; v<=g; v++){
if(arrTG[v][i][j] >= 1){
countV++;
MaxTG = max(MaxTG, arrTG[v][i][j]);
}
}
if(countV > sumV){
sumV = countV;
MinTG = MaxTG;
}
if(countV == sumV){
if(MinTG > MaxTG){
MinTG = MaxTG;
}
}
}
}
}
cout << "Case #" << tc << endl;
if(sumV == g1){
cout << MinTG << endl;
}
else{
cout << "-1" << endl;
}
}
return 0;
}
Case #1
1
Case #2
2
Case #3
2
Case #4
7
Case #5
-1
Case #6
8
Case #7
2
Case #8
4
Case #9
6
Case #10
-1
Case #11
-1
Case #12
1
Case #13
-1
Case #14
-1
Case #15
-1
Case #16
-1
Case #17
8
Case #18
-1
Case #19
-1
Case #20
7
Case #21
7
Case #22
2
Case #23
10
Case #24
9
Case #25
-1
Case #26
6
Case #27
-1
Case #28
-1
Case #29
8
Case #30
3
Case #31
5
Case #32
10
Case #33
12
Case #34
12
Case #35
-1
Case #36
13
Case #37
-1
Case #38
8
Case #39
3
Case #40
11
Case #41
-1
Case #42
8
Case #43
-1
Case #44
10
Case #45
-1
Case #46
-1
Case #47
7
Case #48
-1
Case #49
11
Case #50
-1
Editor is loading...