12144. Заміна символів
Відправити розв'язок
Бали:
100
Time limit:
2.0s
Memory limit:
500M
Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python
Вам надається рядок \(S\) довжиною \(N\), що складається з великих і малих літер англійського алфавіту.
Виконаємо \(Q\) операцій над рядком \(S\). \(i\)-та операція \((1≤i≤Q)\) представлена кортежем \((t_i ,x_i ,c_i )\) з двох цілих чисел і одного символу, як показано нижче.
- Якщо \(t_i =1\), змініть \(x_i\)-й символ \(S\) на \(c_i\) .
- Якщо \(t_i =2\), перетворіть усі великі літери в \(S\) на малі (не використовуйте \(x_i ,c_i\) для цієї операції).
- Якщо \(t_i =3\), перетворіть усі малі літери в \(S\) на великі (не використовуйте \(x_i ,c_i\) для цієї операції).
Виведіть \(S\) після \(Q\) операцій.
Обмеження
- \(1≤N≤5×10^5\)
- \(S\) — це рядок довжиною \(N\), що складається з великих і малих літер англійського алфавіту.
- \(1≤Q≤5×10^5\)
- \(1≤t_i ≤3\) \((1≤i≤Q)\)
- Якщо \(t_i =1\), то \(1≤x_i ≤N\) \((1≤i≤Q)\).
- \(c_i\) — велика або мала англійська літера.
- Якщо \(t_i \neq 1\), то \(x_i =0\) і \(c i = 'a'\).
- \(N,Q,t_i ,x_i\) — цілі числа.
Формат вхідних даних
Перший рядок містить ціле число \(N\).
Другий рядок містить \(S\).
Наступний рядок містить ціле число \(Q\).
Наступні \(Q\) рядків містять \(t_i, x_i, c_i\).
Формат вихідних даних
У вихідний потік виведіть відповідь в один рядок.
Приклад вхідних даних
7
AtCoder
5
1 4 i
3 0 a
1 5 b
2 0 a
1 4 Y
Приклад вихідних даних
atcYber
Спочатку рядок S є AtCoder.
- Перша операція змінює 4-й символ на i, змінюючи S на AtCider.
- Друга операція перетворює всі малі літери на великі, змінюючи S на ATCIDER.
- Третя операція змінює 5-й символ на b, змінюючи S на ATCIbER.
- Четверта операція перетворює всі великі літери на малі, змінюючи S на atciber.
- П'ята операція змінює 4-й символ на Y, змінюючи S на atcYber.
Після виконання операцій рядок S є atcYber, тому надрукуйте atcYber.
Приклад вхідних даних
35
TheQuickBrownFoxJumpsOverTheLazyDog
10
2 0 a
1 19 G
1 13 m
1 2 E
1 21 F
2 0 a
1 27 b
3 0 a
3 0 a
1 15 i
Приклад вихідних даних
TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG
Коментарі