11982. Шаблони


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам надано шаблони \(S\) і \(T\), що складаються з '#' і '.', кожен з яких має \(H\) рядків і \(W\) стовпців. Шаблон \(S\) подано як \(H\) рядків, а \(j\)-й символ \(S_i\) ​ представляє елемент у \(i\)-му рядку та \(j\)-му стовпці. Те саме стосується \(T\).

Визначте, чи можна зробити \(S\) рівним \(T\), переставивши стовпці \(S\).

Тут перегрупування стовпців шаблону \(X\) виконується наступним чином.

  • Виберіть перестановку \(P=(P_1 ​ ,P_2 ​ ,…,P_W ​ )\) з \((1,2,…,W)\).
  • Тоді для кожного цілого \(i\) такого, що \(1≤i≤H\), одночасно виконайте наступне.

  • Для кожного цілого числа \(j\) такого, що \(1≤j≤W\), одночасно замініть елемент у \(i\)-му рядку та \(j\)-му стовпці \(X\) на елемент у \(i\)-му рядку та \(P_j\) ​ -му стовпці.

Обмеження

  • \(H\) і \(W\) є цілими числами.
  • \(1≤H,W 1≤H×W≤4×10^5\)
  • \(S_i\) ​ і \(T_i\) ​ — рядки довжини \(W\), що складаються з '#' і '.'.

Формат вхідних даних

Перший рядок містить цілі числа \(H,W\).

Наступні  \(H\) рядків містять \(S_i\).

Далі наступні  \(H\) рядків містять \(T_i\).

Формат вихідних даних

У вихідний потік виведіть відповідь: Yes або No.

Приклад вхідних даних

3 4
##.#
##..
#...
.###
..##
...#

Приклад вихідних даних

Yes

Якщо ви, наприклад, розташуєте 3-й, 4-й, 2-й і 1-й стовпці \(S\) в такому порядку зліва направо, \(S\) буде дорівнювати \(T\).

Приклад вхідних даних

3 3
#.#
.#.
#.#
##.
##.
.#.

Приклад вихідних даних

No

Приклад вхідних даних

2 1
#
.
#
.

Приклад вихідних даних

Yes

Приклад вхідних даних

8 7
#..#..#
.##.##.
#..#..#
.##.##.
#..#..#
.##.##.
#..#..#
.##.##.
....###
####...
....###
####...
....###
####...
....###
####...

Приклад вихідних даних

Yes

Коментарі

Ще немає коментарів.