secvop


Timp maxim de execuţie/test:
0.8 secunde
Memorie totală disponibilă/stivă:
16MB/1 MB

Fie N un numar natural si A un vector. Initial A[i]=i, pentru orice i=1, 2, ..., N.
Asupra acestui vector se pot aplica operatii de doua tipuri:
1.
I St Dr
Se inverseaza subsecventa din vector care începe la pozitia St si se termina la pozitia Dr (1<=St<=Dr<=N)
De exemplu, sa consideram N=10. Aplicand I 2 7 se obtine vectorul
1 7 6 5 4 3 2 8 9 10
2.
S St Dr
Se afiseaza suma elementelor din subsecventa care începe pe pozitia St si se termina pe pozitia Dr (1<=St<=Dr<=N).
De exemplu, sa consideram N=10. Aplicand S 2 7 se afiseaza 27.

Cerinţă

Scrieti un program care sa execute o secventa data de operatii de tipul celor descrise în enunt.

Date de intrare

Fişierul de intrare secvop.in conţine pe prima linie doua numere naturale separate prin spatiu N si K (unde N este dimensiunea vectorului, iar K este numarul de operatii ce trebuie sa fie executate). Pe urmatoarele K linii sunt scrise K operatii, câte o operatie pe o linie. Aceste operatii sunt scrise în ordinea în care trebuie sa fie executate. O operatie este descrisa printr-un caracter (I sau S) urmat de spatiu, apoi de indicele St (1<=St<=N), apoi de spatiu, apoi de indicele Dr (St<=Dr<=N).

Date de ieşire

Fişierul de ieşire secvop.out va conţine atâtea linii câte operatii de tipul 2 (operatii de scriere) se afla în fisierul de intrare. Pe linia i va fi scris rezultatul afisat de cea de a i-a operatii de scriere din fisierul de intrare.

Restricţii

  • 1 <= K <= 5000
  • 0 < N <= 109
  • În fisierul de intrare se afla cel putin o operatie de scriere.

Exemplu

secvop.in secvop.out Explicatie
15 4
S 2 11
I 10 15
I 1 10
S 5 10
65
21

Initial vectorul este 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
S 2 11 afiseaza suma elementelor de la pozitia 2 la pozitia 11 inclusiv: 2+3+4+5+6+7+8+9+10+11=65
I 10 15 inverseaza elementele din subsecventa de la pozitia 10 la pozitia 15. Se obtine vectorul:
1 2 3 4 5 6 7 8 9 15 14 13 12 11 10
I 1 10 inverseaza elementele din subsecventa de la pozitia 1 la pozitia 10. Se obtine vectorul:
15 9 8 7 6 5 4 3 2 1 14 13 12 11 10
S 5 10 afiseaza suma elementelor de la pozitia 5 la pozitia 10 inclusiv: 6+5+4+3+2+1=21

prof. Emanuela Cerchez
Liceul de Informatică „Grigore Moisil” Iaşi
emanuela.cerchez@gmail.com