Pesunöör | 프로그래밍의 벗 PivotOJ
PivotOJ

Pesunöör

시간 제한: 2000ms메모리 제한: 1024MB출처: EIO 2022-23 openBOJ 29827

문제

Jukul on palju programmeerimisvõistlustelt saadud punaseid, rohelisi ja siniseid särke. Ta pesi need ära ja pani järjest pesunöörile. Aga talle ei meeldinud särkide suvaline paigutus nööril. Seetõttu arvutas ta välja kõige ilusama särkide paigutuse ja ka särkide liigutamised, mida selle saavutamiseks tuleb teha. Siiski soovib Juku liigutamiste vahel kontrollida, kas kõik tema särgid on ikka alles. Selleks tahab ta teada, kui palju mingit värvi särke on nööri mingis lõigus.

입력

Esimesel real on antud arvud NN ja QQ (1N1051 \le N \le 10^5, 1Q1051 \le Q \le 10^5): vastavalt Juku särkide arv ja päringute arv.

Teisel real on NN tähest koosnev sõne: särkide esialgne järjestus, kus P tähistab punast, R rohelist ja S sinist värvi särki.

Järgmisel QQ real on Juku päringud kujul TT LL RR (1LRN1 \le L \le R \le N), kus TT on päringu tüüp ning LL ja RR on särkide asukohad, millele päring rakendub.

Päringuid on kuut erinevat tüüpi:

  1. Kui TT on PUNASEID, tahab Juku teada, mitu punast särki on pesunööril lõigus LL kuni RR.
  2. Kui TT on ROHELISI, tahab Juku teada, mitu rohelist särki on pesunööril lõigus LL kuni RR.
  3. Kui TT on SINISEID, tahab Juku teada, mitu sinist särki on pesunööril lõigus LL kuni RR.
  4. Kui TT on ETTE, lõikab Juku pesunööri lõigu LL kuni RR välja ja seob selle nööri algusesse. Et särgid maha ei kukuks, seob Juku lõigu eemaldamisel tekkinud otsad omavahel kokku.
  5. Kui TT on TAHA, lõikab Juku pesunööri lõigu LL kuni RR välja ja seob selle nööri lõppu. Et särgid maha ei kukuks, seob Juku lõigu eemaldamisel tekkinud otsad omavahel kokku.
  6. Kui TT on POORA, lõikab Juku pesunööri lõigu LL kuni RR välja, pöörab selle ümber ja seob selle nööri tagasi.

출력

Iga PUNASEID, ROHELISI või SINISEID tüüpi päringu kohta väljastada eraldi reale üks arv, mis vastab Juku küsimusele.

예제

예제 1

입력
5 6
PPSRR
POORA 1 3
PUNASEID 1 1
ETTE 4 5
ROHELISI 1 2
TAHA 1 2
SINISEID 1 1
출력
0
2
1
코드를 제출하려면 로그인하세요.