Codeforces Global Round 2 |
---|
Закончено |
Рамзес пришел в университет на пару по практике алгоритмов, и его любимый преподаватель, который является довольно известным программистом, задал ему такую задачу.
Даны две матрицы $$$A$$$ и $$$B$$$ размера $$$n \times m$$$, каждая состоит только из $$$0$$$ и $$$1$$$. Рамзес может сколько угодно раз применять к матрице $$$A$$$ следующую операцию: взять любую подматрицу матрицы $$$A$$$, содержащую хотя бы две строки и два столбца, и инвертировать значение в её углах (то есть все углы подматрицы, в которых раньше стоял $$$0$$$, после операции будут содержать $$$1$$$, а все углы подматрицы, в которых раньше стояла $$$1$$$, после операции будут содержать $$$0$$$). Требуется ответить, можно ли из матрицы $$$A$$$ получить матрицу $$$B$$$.
Так как Рамзес не хочет выполнять эти операции вручную, он просит вас ответить на этот вопрос.
Подматрицей матрицы $$$M$$$ называется матрица, образованная элементами на пересечении множества строк с номерами $$$x_1, x_1+1, \ldots, x_2$$$ матрицы $$$M$$$ и множества столбцов с номерами $$$y_1, y_1+1, \ldots, y_2$$$ матрицы $$$M$$$, где $$$x_1, x_2, y_1, y_2$$$ — крайние строки и столбцы подматрицы. Иными словами, подматрица — это набор ячеек исходной матрицы, которые образуют сплошной (без пустот) прямоугольник со сторонами, параллельными сторонам исходной матрицы, углами подматрицы являются клетки $$$(x_1, y_1)$$$, $$$(x_1, y_2)$$$, $$$(x_2, y_1)$$$, $$$(x_2, y_2)$$$, где клетка $$$(i,j)$$$ обозначает клетку на пересечении $$$i$$$-й строки и $$$j$$$-го столбца.
В первой строке находятся два целых числа $$$n$$$ и $$$m$$$, разделенных пробелом ($$$1 \leq n, m \leq 500$$$) — количество строк и столбцов в матрицах $$$A$$$ и $$$B$$$ соответственно.
В следующих $$$n$$$ строках находятся по $$$m$$$ целых чисел, разделенных пробелом: $$$j$$$-е число в $$$i$$$-й из этих строк обозначает $$$j$$$-й элемент $$$i$$$-й строки матрицы $$$A$$$ ($$$0 \leq A_{ij} \leq 1$$$).
В следующих $$$n$$$ строках находятся по $$$m$$$ целых чисел, разделенных пробелом: $$$j$$$-е число в $$$i$$$-й из этих строк обозначает $$$j$$$-й элемент $$$i$$$-й строки матрицы $$$B$$$ ($$$0 \leq B_{ij} \leq 1$$$).
Выведите «Yes» (без кавычек), если вышеуказанными действиями можно превратить матрицу $$$A$$$ в матрицу $$$B$$$, и «No» (без кавычек), если нельзя. Вы можете выводить каждую букву в любом регистре (строчную или заглавную).
3 3 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0
Yes
6 7 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1
Yes
3 4 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
No
Примеры объяснены на рисунках ниже.
Название |
---|