Masala B

Xotira 64 MB Vaqt 1000 ms
14

Qism satr

substring() funksiyasi — ko‘pchilik dasturlash tillarida mavjud bo‘lgan va matnlar bilan ishlashda keng qo‘llaniladigan amal. U matnning bir qismini olish uchun ishlatiladi. Funksiya ikkita parametr — boshlang‘ich pozitsiya (start offset) va uzunlik (length) qabul qiladi. U aynan shu pozitsiyadan boshlab, berilgan uzunlikdagi yangi matnni qaytaradi.

Endi bir o‘ziga xos holatni ko‘rib chiqamiz: bitta matnga ushbu funksiya ketma-ket juda ko‘p marta qo‘llanildi. Har safar biz substring(s, start, length) funksiyasidan foydalanib, matnning bir qismini olib, uni keyingi matn sifatida ishlatdik. Natijada, ehtimol ancha qisqargan yakuniy matn qolgan.

Barcha ketma-ket bajarilgan substring() amallari natijasida hosil bo‘lgan yakuniy matnni aniqlang.


Kiruvchi ma'lumotlar:
  • 1-qator: ss — dastlabki matn beriladi 1s1061\le \lvert s\rvert \le 10^6
  • 2-qator: nn — bajariladigan amallar soni beriladi (1n106)(1\le n\le 10^6)
  • Keyingi n qatorda — har bir qatorda ikkita butun son startistart_i va lengthilength_i beriladi:
    • 0starti<lengthi10\le start_i < length_{i-1} — har bir yangi startistart_i oldingi natijadan tanlanadi.
    • 1starti+lengthilengthi11\le start_i+length_i\le length_{i-1} — substring chegaradan chiqib ketmasligi kerak. 

Chiquvchi ma'lumotlar:

Oxirgi amaldan so‘ng hosil bo‘lgan yakuniy matnni chop eting.


Misollar
# input.txt output.txt
1
helloworld
2
1 9
0 5
ellow
2
abcdefghijklmnopqrstuvwxyz
8
1 24
1 22
1 20
1 18
1 16
1 14
1 12
1 10
ijklmnopqr