CSES - Treap II
  • Time limit: 2.00 s
  • Memory limit: 256 MB

Uolevilla on merkkijono, joka muodostuu kirjaimista A, H, I, M, O, T, U, V, W, X ja Y. Hän muodostaa leikkailemalla ja liimailemalla uuden merkkijonon käyttäen seuraavia operaatioita:

  • S: leikkaa merkkijono kahdeksi merkkijonoksi
  • M: valitse kaksi eri merkkijonoa ja liimaa toinen toisen perään
  • R: sama kuin M, mutta lopuksi käännä merkkijono ympäri

Kaikki merkkijonot numeroidaan siten, että alkuperäinen merkkijono on 0, ja operaatioissa syntyvät merkkijonot numeroidaan juoksevasti (S-operaatiossa luotavista kahdesta merkkijonosta alkuosa tulee ennen loppuosaa). Käsiteltävät merkkijonot tuhoutuvat operaatiossa, eli samaa merkkijononumeroa ei käytetä useampaa kertaa. Kun kaikki operaatiot on suoritettu, kaikki merkkijonot on taas yhdistetty yhdeksi merkkijonoksi. Tehtäväsi on selvittää, mikä tämä merkkijono on.

Syöte

Syötteen ensimmäisellä rivillä on Uolevin alkuperäinen merkkijono. Syötteen toinen rivi sisältää operaatioiden lukumäärän q. Loput q riviä sisältävät operaatiot. Operaatiorivin ensimmäinen kirjain kuvaa operaation tyypin (S, M tai R). Rivillä on tämän lisäksi luvut a ja b.

  • S-operaatiossa a on leikattava merkkijono ja b on leikkauskohta. Merkkijonon a pituus on k, leikkaus tuottaa merkkijonot joiden pituudet ovat b ja k - b. Merkkijono halkaistaan aina siten, että molemmissa osissa on merkkejä, eli 0 < b < k.
  • M- ja R-operaatiossa a ja b ovat yhdistettävät merkkijonot, a\neq b.

Tuloste

Tulosta yksi rivi, joka sisältää lopuksi jäljelle jäävän merkkijonon.

Rajat

  • Merkkijonossa on vähintään yksi ja enintään 5\cdot 10^5 merkkiä
  • 1\leq q\leq 5\cdot 10^5

Esimerkki

Syöte:

HVIUYAOTMH
10
S 0 7
S 1 4
S 2 2
M 4 5
R 7 3
S 8 6
M 9 6
S 11 2
R 13 10
M 12 14

Tuloste:

UIYAOHTMHV