Codeforces Round 150 (Div. 1) |
---|
Закончено |
Рассмотрим квадратную матрицу размера n × n, состоящую из единиц и нулей.
Будем считать матрицу хорошей, если она удовлетворяет следующему условию: в каждой строке матрицы все единицы идут подряд. То есть каждая строка имеет вид 00...0011...1100...00 (или же просто состоит из нулей, если в ней нет единиц).
Дана матрица a размера n × n, состоящая из единиц и нулей. Определите, можно ли из нее получить хорошую матрицу b с помощью перестановки столбцов, или нет.
В первой строке записано целое число n (1 ≤ n ≤ 500) — размер матрицы a.
В каждой из n последующих строк записано по n символов «0» и «1» — матрица a. Обратите внимание, символы записаны без разделителей.
Выведите «YES» в первой строке, если возможно так переставить столбцы матрицы a, чтобы получилась хорошая матрица b. В следующих n строках выведите хорошую матрицу b. Если существует несколько ответов, разрешается вывести любой.
Если получить хорошую матрицу невозможно, выведите «NO».
6
100010
110110
011001
010010
000100
011001
YES
011000
111100
000111
001100
100000
000111
3
110
101
011
NO
Название |
---|