CF1570F.Square Filling
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given two matrices A and B . Each matrix contains exactly n rows and m columns. Each element of A is either 0 or 1 ; each element of B is initially 0 .
You may perform some operations with matrix B . During each operation, you choose any submatrix of B having size 2×2 , and replace every element in the chosen submatrix with 1 . In other words, you choose two integers x and y such that 1≤x<n and 1≤y<m , and then set Bx,y , Bx,y+1 , Bx+1,y and Bx+1,y+1 to 1 .
Your goal is to make matrix B equal to matrix A . Two matrices A and B are equal if and only if every element of matrix A is equal to the corresponding element of matrix B .
Is it possible to make these matrices equal? If it is, you have to come up with a sequence of operations that makes B equal to A . Note that you don't have to minimize the number of operations.
输入格式
The first line contains two integers n and m ( 2≤n,m≤50 ).
Then n lines follow, each containing m integers. The j -th integer in the i -th line is Ai,j . Each integer is either 0 or 1 .
输出格式
If it is impossible to make B equal to A , print one integer −1 .
Otherwise, print any sequence of operations that transforms B into A in the following format: the first line should contain one integer k — the number of operations, and then k lines should follow, each line containing two integers x and y for the corresponding operation (set Bx,y , Bx,y+1 , Bx+1,y and Bx+1,y+1 to 1 ). The condition 0≤k≤2500 should hold.
输入输出样例
输入#1
3 3 1 1 1 1 1 1 0 1 1
输出#1
3 1 1 1 2 2 2
输入#2
3 3 1 0 1 1 0 1 0 0 0
输出#2
-1
输入#3
3 2 0 0 0 0 0 0
输出#3
0
说明/提示
The sequence of operations in the first example:
000000000→110110000→110110110→110111111