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

Коментарі

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