11522. Обмін
Маємо рядок \(S\) довжиною \(2N\).
Вам надаються \(Q\) запитів на цьому рядку. У \(i\)-му запиті дані три цілих числа \(T_i\), \(A_i\), і \(B_i\), виконайте наступне:
якщо \(T_i = 1\): поміняти місцями \(A_i\)-й і \(B_i\)-й символи \(S\);
якщо \(T_i = 2\): поміняйте місцями перші \(N\) символів і останні \(N\) символів \(S\) (значення \(A_i\) і \(B_i\) не використовуються). Наприклад, якщо \(S\) є \(FLIP\), цей запит робить його \(IPFL\).
Виведіть рядок \(S\) після обробки всіх запитів \(Q\) у тому порядку, як вони задаються.
Формат вхідних даних
Перший рядок містить ціле число \(N\) (\(1 \le N \le 2 \times 10^5\))
Другий рядок містить \(S\) (\(|S|=2N\), \(S\) = ['A'..'Z'])
Третій рядок містить ціле число \(Q\) (\(1 \le S \le 3 \times 10^5\))
Наступні \(Q\) рядків містять цілі числа \(T_i, A_i, B_i\) (\(if T_i=1: 1 \le A_i < B_i \le 2N\), \(if T_i=2: A_i = B_i = 0\), \(T_i = 1,2\) )
Формат вихідних даних
У вихідний потік виведіть вихідний рядок \(S\).
Примітка
До прикладу 1:
1-й запит міняє місцями перші N символи та останні N символів S, отримаємо IPFL.
2-й запит міняє місцями 1-й і 4-й символи S, отримаємо LPFI.
Приклад вхідних даних
2
FLIP
2
2 0 0
1 1 4
Приклад вихідних даних
LPFI
Приклад вхідних даних
2
FLIP
6
1 1 3
2 0 0
1 1 2
1 2 3
2 0 0
1 1 4
Приклад вихідних даних
ILPF
Коментарі