已结束 GESP欢乐赛 #15

A1554 | 或矩阵

来源官方 / 2023
时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

Yuilice最近收到了一个矩阵,朋友说这个矩阵是由一个序列$a$进行或操作转变而来的,操作方式如下。

序列$a$的长度为$n$,将会生成一个$n \times n$的矩阵$M$,其中$M_{(i,j)}$的数值是由$a_i | a_j(i < j)$所得的,并且$1 \leq a_i \leq 2^{30}$。

如果碰到$i = j$的情况,那么$M_{(i,j)} = 0$(题目保证所有$i = j$的矩阵格子数值都为0).

现在Yuilice给出这个矩阵,请你帮他求出序列$a$,如果存在多个满足条件的序列$a$,请输出其中字典序最大的。

输入格式

第一行输入一个整数$t(1 \leq t \leq 10^4)$,代表共有$t$组样例。

随后每组样例的第一行输入一个整数$n(2 \leq n \leq 10^3)$,代表数组$a$的长度。

随后$n$行,每行输入$n$个整数,代表转变后的矩阵。

输出格式

对于每组样例分为两种情况。

如果存在序列$a$,则输出YES,并且在第二行输出序列$a$。

如果不存在,则输出NO

输入输出样例

输入 #1
3
4
0 1 2 3
1 0 3 3
2 3 0 3
3 3 3 0
5
0 7 7 5 5
7 0 3 2 6
7 3 0 3 7
5 2 3 0 4
5 6 7 4 0
3
0 0 1
0 0 0
1 0 0
输出 #1
YES
0 1 2 3
YES
5 2 3 0 4
NO
C++ 编辑器
输入
输出