Versiya Nəzarətli IDE#4094

Versiya Nəzarətli IDE

8 saniyə
64 meqabayt
Çox çətin

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.

Giriş

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.

Çıxış

ə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 4

Obfuskasiyadan 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 6

Bu, proqramınızın oxuyacağı real girişdir.

Nümunələr

Nümunə 1

Loading
Loading