CF464B Restore Cube

题目描述

Peter 有一个边长为非零的正方体。他将这个正方体放入三维空间,使其顶点都位于整数点上(正方体的边可能不与坐标轴平行)。然后他写下了八行数字,每行包含三个整数,分别代表正方体一个顶点的坐标(每个顶点被记录一次且只被记录一次)。Peter 离开后,他的弟弟 Nick 拿起纸玩了起来。Nick 的每一步操作可以交换任意一行中的数字(不能交换不同行中的数字)。Nick 可以进行任意多次这样的操作。 当 Peter 回来发现数字被打乱后,他想试图还原原始的顶点坐标。请你帮助 Peter 恢复这些顶点的原始坐标,如果无法还原,请判断最初记录时便有误。

输入格式

接下来的八行,每行包含三个以空格分隔的整数,表示 Nick 捣乱后纸条上的八组数据。所有整数的绝对值均不超过 $10^6$。

输出格式

如果存在正方体的还原方案,输出第一行 "YES"。接下来八行,每行输出三个整数,恢复后的顶点坐标。第 $i$ 行应为输入第 $i$ 行三个数字的某种排列。输出的点应是一个边长为非零的正方体的八个顶点。若有多种恢复方式,输出任意一种即可。 若无法还原,输出第一行 "NO"。不要输出其它内容。

说明/提示

由 ChatGPT 5 翻译