CF1492E Almost Fault-Tolerant Database
题目描述
你正在数据库中存储一个长度为 $m$ 的整数数组。为了维护内部完整性并保护数据,数据库会存储该数组的 $n$ 份副本。
不幸的是,最近发生的事件可能已经改变了数据库中每一份副本的信息。
据推测,这次事件至多改变了每份副本中的两个元素。你需要根据数据库当前的状态,恢复出原始数组。
如果有多种恢复原始数组的方法,输出任意一种即可。如果不存在一个数组,使得它与每份副本最多只在两个位置上不同,也请输出相应结果。
输入格式
第一行包含两个整数 $n$ 和 $m$($2 \le n$,$1 \le m$,$n \cdot m \le 250\,000$),分别表示副本的数量和数组的长度。
接下来的 $n$ 行,每行描述数据库中当前存储的一份副本,包含 $m$ 个整数 $s_{i,1}, s_{i,2}, \dots, s_{i,m}$($1 \le s_{i,j} \le 10^9$)。
输出格式
如果存在一个数组与所有给定副本都相符,输出 "Yes",并在下一行输出该数组。该数组长度为 $m$,且每个元素为 $1$ 到 $10^9$ 之间的整数。
否则,输出 "No"。
如果存在多种可能的数组,输出任意一种均可。
说明/提示
在第一个样例中,数组 $[1, 10, 1, 100]$ 与第一和第二份副本仅在一个位置不同,与第三份副本在两个位置不同。
在第二个样例中,数组 $[1, 1, 1, 1, 1, 1, 1]$ 与第一份副本完全相同,与其他所有副本最多只在两个位置不同。
在第三个样例中,不存在一个数组能与每份副本最多只在两个位置不同。
由 ChatGPT 4.1 翻译