Proqramçılar layihələrindəki faylları idarə etmək üçün versiya idarəetmə sistemlərindən istifadə edirlər, lakin bu sistemlərdə versiyalar yalnız əl ilə təqdim etdiyiniz zaman yadda saxlanılır. Siz bir IDE tətbiq edə bilərsinizmi ki, hər dəfə bir sıra daxil etdikdə və ya sildikdə avtomatik olaraq yeni bir versiya saxlasın?
Buferdəki mövqelər soldan sağa doğru ilə nömrələnir. Əvvəlcə bufer boşdur və versiya -dır. Sonra siz əmri icra edə bilərsiniz (burada əmrin icrasından əvvəlki versiyanı ifadə edir və L_v versiya -də buferin uzunluğunu ifadə edir):
: sətrini mövqeyindən sonra daxil edin (0 \leq p \leq L_{vnow}, p=0 buferin başlanğıcından əvvəl daxil etməyi ifadə edir). ən az və ən çox hərf ehtiva edir.
: mövqeyindən başlayaraq simvolunu silin (p \geq 1, p+c \leq L_{vnow}+1). Qalan simvollar (əgər varsa) sola sürüşdürüləcək, boşluğu dolduracaq.
: versiya -də (1 \leq v \leq vnow) mövqeyindən başlayaraq simvolunu çap edin (p \geq 1, p+c \leq L_v+1).
Birinci əmrin (daxil etmə) əmri olacağına zəmanət verilir. Hər bir və ya əmri icra edildikdən sonra versiya artırılır.
Yalnız bir test halı var. Bu, əmrlərin sayı olan tək bir tam (1 \leq n \leq 50000) ilə başlayır.
Sonrakı sətirin hər biri bir əmr ehtiva edir. Bütün daxil edilmiş sətirlərin ümumi uzunluğu -i keçməyəcək.
əmrlərinin nəticələrini ardıcıllıqla çap edin. Bütün çap edilmiş sətirlərin ümumi uzunluğu -i keçməyəcək.
Obfuskasiya
Əmri əvvəlcədən emal etməyinizin qarşısını almaq üçün aşağıdakı obfuskasiya sxemini qəbul edirik:
Hər bir tip- əmr p+d olur
Hər bir tip- əmr p+d c+d olur
Hər bir tip- əmr v+d p+d c+d olur
Burada bu əmri emal etməzdən əvvəl çap etdiyiniz kiçik hərf 'c' sayıdır.
Məsələn, obfuskasiya edilməmiş nümunə giriş belədir:
6
1 0 abcdefgh
2 4 3
3 1 2 5
3 2 2 3
1 2 xy
3 3 2 4Obfuskasiyadan sonra nümunə giriş belə olacaq:
6
1 0 abcdefgh
2 4 3
3 1 2 5
3 3 3 4
1 4 xy
3 5 4 6Bu, proqramınızın oxuyacağı real girişdir.
Nümunə 1