CF815A Karen and Game

题目描述

在上学的路上,Karen 被手机上的益智游戏吸引住了! 游戏规则如下:每一关都有一个 $n$ 行 $m$ 列的网格,每个格子最初都包含数字 $0$。 每一次操作可以选择一整行或一整列,将该行或该列所有格子的数字加 $1$。 通关的目标是在若干次操作后,使得第 $i$ 行第 $j$ 列的格子里的数字恰好等于 $g_{i,j}$。 现在,Karen 卡在了某一关,她想知道要用最少的操作次数来通关这一关。请你帮帮她!

输入格式

输入的第一行为两个整数 $n$ 和 $m$($1\leq n,m\leq 100$),分别表示网格的行数和列数。 接下来的 $n$ 行,每行有 $m$ 个整数。具体地,第 $i$ 行的第 $j$ 个整数表示 $g_{i,j}$($0\leq g_{i,j}\leq 500$)。

输出格式

如果无法通关,输出一个整数 $-1$。 否则,第一行输出一个整数 $k$,表示最少需要的操作次数。 接下来的 $k$ 行,每行描述一次操作,按照执行顺序输出: - row $x$($1\leq x\leq n$),表示选择第 $x$ 行进行操作; - col $x$($1\leq x\leq m$),表示选择第 $x$ 列进行操作; 如果有多个最优解,输出任意一个均可。

说明/提示

在第一个测试用例中,Karen 有一个 $3$ 行 $5$ 列的网格。她可以执行下列 $4$ 次操作来通关: 在第二个测试用例中,Karen 有一个 $3$ 行 $3$ 列的网格。显然,这一关无法通关;因为每进行一次操作都会让网格中出现三个 $1$,但需要的只是中间的那个格子为 $1$。 在第三个测试用例中,Karen 有一个 $3$ 行 $3$ 列的网格。她可以执行 $3$ 次操作来通关: 注意,这不是唯一的解法;例如 col 1、col 2、col 3 这样的操作顺序也是可行的。 由 ChatGPT 5 翻译