Олимпиадный тренинг

Задача . B. ХранИЛИще


На Кипре стоит довольно жаркая погода. Поэтому Теофанис увидел в этом возможность создать компанию по производству мороженого.

Он хранит мороженое в безопасности от других производителей мороженого, запирая его в больших складских помещениях. Однако он забыл пароль. К счастью, у замка есть специальная функция для забывчивых людей!

Дана таблица \(M\) с \(n\) строками и \(n\) столбцами неотрицательных целых чисел, и, чтобы открыть замок, вам нужно найти массив \(a\) из \(n\) элементов такой, что:

  • \(0 \le a_i < 2^{30}\), и
  • \(M_{i,j} = a_i | a_j\) для всех \(i \neq j\), где \(|\) обозначает операцию побитового ИЛИ.

Замок может иногда выдавать таблицы, для которых нет решения. В этом случае мороженое останется замороженным до конца времен.

Сможете ли вы найти массив, чтобы открыть замок?

Входные данные

Первая строка содержит одно целое число \(t\) (\(1 \le t \le 10^{3}\)) — количество наборов входных данных.

Первая строка каждого набора входных данных содержит одно целое число \(n\) (\(1 \le n \le 10^{3}\)) — размер искомого массива.

Следующие \(n\) строк описывают строки таблицы \(M\), строка \(i\) содержит значения \(M_{i,1}, M_{i,2}, \ldots, M_{i,n}\) (\(0 \le M_{i,j} < 2^{30}\)).

Гарантируется, что \(M_{i,i} = 0\) и \(M_{i,j} = M_{j,i}\) для всех \(1 \le i,j \le n\).

Также гарантируется, что сумма \(n\) по всем наборам входных данных не превосходит \(10^{3}\).

Выходные данные

Для каждого набора входных данных, если существует решение, выведите в отдельных строках YES и искомый массив, в противном случае выведите NO.

Если существует несколько решений, выведите любое из них.

Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.


Примеры
Входные данныеВыходные данные
1 4
1
0
4
0 3 3 5
3 0 3 7
3 3 0 7
5 7 7 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
YES
7
YES
1 3 2 5 
YES
5 2 3 0 4
NO

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя