Олимпиадный тренинг

Задача . D. Префиксы и суффиксы


У вас есть две строки \(s_1\) и \(s_2\) длины \(n\), состоящие из строчных латинских букв. Вы можете выполнить следующую операцию любое (возможно, нулевое) количество раз:

  • Выберите положительное целое число \(1 \leq k \leq n\).
  • Поменяйте местами префикс строки \(s_1\) и суффикс строки \(s_2\) длины \(k\).

Можно ли вы сделать эти две строки равными с помощью описанных операций?

Входные данные

В первой строке задано одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Затем следуют описания наборов входных данных.

Каждый набор входных данных описывается в трех строках.

Первая строка содержит единственное целое число \(n\) (\(1 \le n \le 10^5\)) — длина строк \(s_1\) и \(s_2\).

Вторая строка содержит строку \(s_1\) длины \(n\), содержащую только строчные буквы латинского алфавита.

Третья строка содержит строку \(s_2\) длины \(n\), содержащую только строчные буквы латинского алфавита.

Гарантируется, что сумма \(n\) по всем наборам входных данных не превышает \(2 \cdot 10^5\).

Выходные данные

Для каждого набора входных данных выведите «YES» (без кавычек), если можно сделать строки равными, и «NO» (без кавычек), иначе.

Примечание

В первом наборе входных данных:

  • Изначально \(s_1 = \mathtt{cbc}\), \(s_2 = \mathtt{aba}\).
  • Сделаем операцию с \(k = 1\), в результате получим строки \(s_1 = \mathtt{abc}\), \(s_2 = \mathtt{abc}\).

Во втором наборе входных данных:

  • \(s_1 = \mathtt{abcaa}\), \(s_2 = \mathtt{cbabb}\).
  • Сделаем операцию с \(k = 2\), в результате получим строки \(s_1 = \mathtt{bbcaa}\), \(s_2 = \mathtt{cbaab}\).
  • Сделаем операцию с \(k = 3\), в результате получим строки \(s_1 = \mathtt{aabaa}\), \(s_2 = \mathtt{cbbbc}\).
  • Сделаем операцию с \(k = 1\), в результате получим строки \(s_1 = \mathtt{cabaa}\), \(s_2 = \mathtt{cbbba}\).
  • Сделаем операцию с \(k = 2\), в результате получим строки \(s_1 = \mathtt{babaa}\), \(s_2 = \mathtt{cbbca}\).
  • Сделаем операцию с \(k = 1\), в результате получим строки \(s_1 = \mathtt{aabaa}\), \(s_2 = \mathtt{cbbcb}\).
  • Сделаем операцию с \(k = 2\), в результате получим строки \(s_1 = \mathtt{cbbaa}\), \(s_2 = \mathtt{cbbaa}\).

В третьем наборе входных данных невозможно сделать строки равными.


Примеры
Входные данныеВыходные данные
1 7
3
cbc
aba
5
abcaa
cbabb
5
abcaa
cbabz
1
a
a
1
a
b
6
abadaa
adaaba
8
abcabdaa
adabcaba
YES
YES
NO
YES
NO
NO
YES

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя