ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

Открытый чемпионат УрГУ 2010

Описание     Задачи     Отправить на проверку     Состояние проверки     Результаты
Соревнование завершено

H. Чистое программирование

Ограничение времени: 0.5 секунды
Ограничение памяти: 64 МБ
В Уральском государственном университете n компьютерных классов. В субботу, 9 октября, было решено провести в университете сразу n соревнований по программированию подряд! Организаторы составили расписание — таблицу размером n × n из нулей и единиц. j-е число в i-й строке равно единице, если j-й класс задействован в проведении i-го соревнования, и нулю в противном случае.
В пятницу уборщица Зина напомнила организаторам, что после соревнований ей нужно прибраться в классах. Она сказала, что сразу же после завершения первого соревнования хочет прибраться в первом компьютерном классе, после завершения второго соревнования — во втором классе, и так далее. Конечно, ни во время уборки класса, ни после неё в этом классе уже не могут проходить соревнования.
Председатель жюри согласился с Зиной. За одну операцию он может выбрать пару различных целых чисел i и j (1 ≤ i, jn), поменять в таблице местами i-ю и j-ю строку, после чего сразу же поменять местами i-й и j-й столбец. До вечера председатель успеет выполнить не более двухсот таких операций. Сможет ли он получить расписание, устраивающее Зину?

Исходные данные

В первой строке записано целое число n (2 ≤ n ≤ 100). Далее следует расписание соревнований: n строк по n чисел в каждой.

Результат

Если председатель не успеет исправить расписание, выведите «−1». В противном случае выведите в первой строке количество операций t, а затем выведите t строк по два числа в каждой, задающие числа i и j, которые должен выбрать председатель для очередной операции. Если есть несколько способов исправить расписание, выведите любой из них.

Примеры

исходные данныерезультат
3
0 0 0
1 1 0
1 1 0
1
1 3
3
1 1 1
1 1 0
1 0 0
-1
Автор задачи: Алексей Самсонов
Источник задачи: XV Открытый командный чемпионат УрГУ по программированию
Чтобы отправить решение этой задачи на проверку перейдите в Архив задач: 1781. Чистое программирование