CF1965E.Connected Cubes

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

现在有 n⋅mn \cdot m 个单位立方体,分别位于 (1,1,1)(1, 1, 1) 到 (n,m,1)(n, m, 1) 的位置。每个立方体都有 kk 种颜色中的一种。你可以在任意整数坐标处添加额外的立方体,使得每种颜色的立方体集合都是连通的,其中两个立方体如果有一个面相邻,则认为它们是连通的。

换句话说,对于每一对颜色为 cc 的立方体,应当可以只经过颜色为 cc 并且两两有公共面的立方体,从一个走到另一个。

现有的立方体位于房间的角落。x=0x=0、y=0y=0 和 z=0z=0 的平面上完全被无色立方体填满,不能在这些位置或任何负坐标处放置额外的立方体。

请给出一种方案,使用不超过 4⋅1054 \cdot 10^5 个额外立方体(不包括当前已有的立方体),或者判断无解。已知在给定约束下,如果有解,则一定存在一种方案,所需额外立方体数量不超过 4⋅1054 \cdot 10^5。

输入格式

输入的第一行包含三个整数 nn、mm 和 kk(2≤n,m,k≤502 \le n, m, k \le 50),分别表示立方体的行数、列数和颜色数。

接下来的 nn 行,每行包含 mm 个整数。第 ii 行第 jj 个数为 aija_{ij}(1≤aij≤k1 \le a_{ij} \le k),表示位置 (i,j,1)(i, j, 1) 处立方体的颜色。保证每种颜色 11 到 kk 至少出现一次。

输出格式

如果无解,输出一个整数 −1-1。

否则,输出第一行为一个整数 pp(0≤p≤4⋅1050 \le p \le 4 \cdot 10^5),表示你添加的额外立方体数量。

接下来的 pp 行,每行四个整数 xx、yy、zz 和 cc(1≤x,y,z≤1061 \le x, y, z \le 10^6,1≤c≤k1 \le c \le k),表示在 (x,y,z)(x, y, z) 位置添加一个颜色为 cc 的立方体。

输出中不应有两个立方体坐标相同,也不能与输入中已有立方体的坐标重复。

如果有多种方案,输出任意一种。

输入输出样例

  • 输入#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\text{red} = 1,blue=2\text{blue} = 2,green=3\text{green} = 3。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页