A7758.或矩阵

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

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

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

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

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

输入格式

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

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

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

输出格式

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

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

如果不存在,则输出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
首页