Сравнение ответов
В одном месте на юго-западе Европы, название которого я не хочу вспоминать, недавно было n
городов, соединенных односторонними дорогами. Возможно, что более одной дороги соединяет один город с другим, или даже с самим собой. В качестве домашнего задания по географии вам нужно вычислить количество путей длиной ровно два между каждой парой городов. Однако вы были слишком заняты празднованием победы Испании на Чемпионате мира, поэтому теперь вы переписываете ответы у своего друга. Вы хотите убедиться, что его ответы верны, прежде чем сдавать свою домашнюю работу.
Входные данные
Входные данные состоят из нескольких тестов, разделенных одной пустой строкой. Каждый тест начинается с строки, содержащей целое число n
(1 ≤ n ≤ 1000
). Следующие n
строк содержат по n
элементов каждая, где элемент j
строки i
обозначает количество дорог от города i до города j (число от 0 до 10 включительно). Затем идут n
строк, каждая из которых содержит n
элементов, где элемент j
строки i
является ответом вашего друга на количество путей длиной 2 от города i до города j; это будет целое число от 0 до 100000 включительно.
Тесты заканчиваются строкой, содержащей только число ноль (также предшествующей пустой строкой).
Примечание: Большой входной файл; используйте быстрые процедуры I/O.
Выходные данные
Для каждого теста ваша программа должна вывести строку. Содержимое этой строки должно быть "YES", если решение вашего одноклассника по заданию верно, и "NO" в противном случае.