There is an
We say two cells sharing an edge are adjacent. We say two 0 cells are connected if and only if the two 0 cells are adjacent or there exists a third 0 cell that is connected with both cells.
Now we want to replace some (zero, one, or multiple) 0 cells with 1 cells so that after the replacement there exist two 0 cells that are not connected with each other.
For example, if there is a
You need to check if the goal can be achieved. If the goal can be achieved, you need to output the minimum number of 0 cells that should be made into 1 cells.
Input Specification
Each test input consists of multiple test cases.
The first line of the input file consists of an integer
The first line of each test case consists of three integers
Two neighboring integers in a line is separated by a space.
Output Specification
For each test case, output a line denoting the answer.
If in the test case, it is impossible to disconnect two 0 cells, output -1. Otherwise, output the minimum number of 0 cells that should be replaced by 1 cells.
Sample Input 1
4
4 4 2
1 1
4 4
2 3 1
1 2
2 2 2
1 1
2 2
1 1 0
Sample Output 1
2
1
0
-1
Explanation for Sample 1
The first test case is the scenario described in the problem description.
For the second test case, it is possible to replace the cell on the second column of the second row with a 1 cell so that there exist two disconnected 0 cells.
For the third test case, since there are two disconnected 0 cells at the beginning, output 0.
For the fourth test case, there is only one 0 cell at the beginning so it is impossible to have two disconnected 0 cells. As a result, the output should be -1.
Attachment Package
The samples are available here.
Sample 2
See ex_grid2.in
and ex_grid2.ans
.
Constraints
For all test cases,
Let
Test case | ||
---|---|---|
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 | ||
11 | ||
12 | ||
13 | ||
14 | ||
15 | ||
16 | ||
17 | ||
18 | ||
19 | ||
20 | ||
21 | ||
22 | ||
23 | ||
24 | ||
25 |
Comments