题库练习 [COCI 2024/2025 #3] 涂矩阵 / Bojanje
← 上一题 下一题 →

A7361 | [COCI 2024/2025 #3] 涂矩阵 / Bojanje

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

有一个初始为全白的 $n\times n$ 矩阵。

每次操作可以选择一列或者一行,将这一列或者这一行覆盖成红色或者蓝色。

给定矩阵的目标状态,请你构造一组操作序列,使得矩阵达到目标状态,或者报告无解。

不需要最小化操作序列的长度,只需要构造出合法方案即可。

输入格式

第一行,一个正整数 $n$。

接下来 $n$ 行,每行 $n$ 个整数,第 $i$ 行第 $j$ 个整数 $a_{i,j}$ 描述目标状态中第 $i$ 行第 $j$ 列格子的颜色:

$0$ 表示白色。

$1$ 表示红色。

$2$ 表示蓝色。

输出格式

如果无解,输出 $-1$。

否则,第一行输出一个整数 $k$,表示操作序列长度。

你需要保证 $0\le k\le 4000$。

接下来 $k$ 行,每行三个正整数 $a,b,c$,依次描述一次操作:

$a\in\{1,2\}$。

$a=1$ 表示选择的是行。

$a=2$ 表示选择的是列。

$1\le b\le n$,表示选择的是第 $b$ 行或者第 $b$ 列。

$c\in\{1,2\}$。

$c=1$ 表示涂成红色。

$c=2$ 表示涂成蓝色。

输入输出样例

输入 #1
3
0 0 1
1 1 1
0 0 1
输出 #1
2
2 3 1
1 2 1
输入 #2
3
1 1 2
2 1 1
2 1 1
输出 #2
-1
输入 #3
4
0 1 2 1
2 2 2 1
0 1 2 1
1 1 2 1
输出 #3
5
2 2 1
1 2 2
2 4 1
1 4 1
2 3 2
C++ 编辑器
输入
输出