10801. Вирізати і вставити
Відправити розв'язок
Бали:
100
Time limit:
1.0s
Memory limit:
500M
Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python
З заданим рядком ваше завдання полягає в обробці операцій, у яких ви вирізаєте підрядок і вставляєте його в кінець рядка.
Який кінцевий рядок після всіх операцій?
Обмеження
- \( 1≤n,m≤2⋅10^5\)
- \(1≤a≤b≤n\)
Формат вхідних даних
У першому рядку вхідних даних є два цілих числа \(n\) і \(m\): довжина рядка та кількість операцій. Символи рядка пронумеровані \(1,2,…,n\).
Наступний рядок містить рядок довжиною \(n\), який складається з символів A–Z.
Далі іде \(m\) рядків, які описують операції. Кожен рядок містить два цілих числа \(a\) і \(b\): ви вирізаєте підрядок з позиції \(a\) до позиції \(b\).
Формат вихідних даних
Вивести останній рядок після всіх операцій.
Приклад вхідних даних
7 2
AYBABTU
3 5
3 5
Приклад вихідних даних
AYABTUB
Коментарі