CF1965E.Connected Cubes
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
现在有 n⋅m 个单位立方体,分别位于 (1,1,1) 到 (n,m,1) 的位置。每个立方体都有 k 种颜色中的一种。你可以在任意整数坐标处添加额外的立方体,使得每种颜色的立方体集合都是连通的,其中两个立方体如果有一个面相邻,则认为它们是连通的。
换句话说,对于每一对颜色为 c 的立方体,应当可以只经过颜色为 c 并且两两有公共面的立方体,从一个走到另一个。
现有的立方体位于房间的角落。x=0、y=0 和 z=0 的平面上完全被无色立方体填满,不能在这些位置或任何负坐标处放置额外的立方体。

请给出一种方案,使用不超过 4⋅105 个额外立方体(不包括当前已有的立方体),或者判断无解。已知在给定约束下,如果有解,则一定存在一种方案,所需额外立方体数量不超过 4⋅105。
输入格式
输入的第一行包含三个整数 n、m 和 k(2≤n,m,k≤50),分别表示立方体的行数、列数和颜色数。
接下来的 n 行,每行包含 m 个整数。第 i 行第 j 个数为 aij(1≤aij≤k),表示位置 (i,j,1) 处立方体的颜色。保证每种颜色 1 到 k 至少出现一次。
输出格式
如果无解,输出一个整数 −1。
否则,输出第一行为一个整数 p(0≤p≤4⋅105),表示你添加的额外立方体数量。
接下来的 p 行,每行四个整数 x、y、z 和 c(1≤x,y,z≤106,1≤c≤k),表示在 (x,y,z) 位置添加一个颜色为 c 的立方体。
输出中不应有两个立方体坐标相同,也不能与输入中已有立方体的坐标重复。
如果有多种方案,输出任意一种。
输入输出样例
输入#1
3 4 3 3 2 3 1 1 1 1 1 1 3 3 2
输出#1
13 1 1 2 3 1 3 2 3 2 1 2 3 2 2 2 3 2 3 2 3 3 3 2 3 1 2 2 2 1 2 3 2 1 3 3 2 1 4 3 2 2 4 3 2 3 4 3 2 3 4 2 2
输入#2
2 2 2 2 1 1 2
输出#2
9 1 3 1 1 2 3 1 1 3 1 1 1 3 2 1 1 3 3 1 1 1 1 2 2 1 2 2 2 2 1 2 2 2 2 2 2
说明/提示
题目描述中的图片对应第一个样例,其中 red=1,blue=2,green=3。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?