Time limit: 0.4s
Memory limit: 64MB
Input: undo.in
Output: undo.out
Bossanip vă dă o matrice inițial plină cu . Se pot executa asupra ei tipuri de operații:
- – Update : La valoarea elementului de pe linia și coloana se adună valoarea întreagă .
- – Query : Se cere suma elementelor din submatricea determinată de colțul stânga-sus și colțul dreapta-jos .
- – Undo : Elimină ultimele operații de Update și Undo.
Se dau astfel de operatii.
Date de intrare
Pe prima linie a fișierului de intrare undo.in
se va afla un număr natural și un număr natural . Pe următoarele linii vor fi cele operații ( pentru Update; pentru Query; pentru Undo)
Date de ieșire
În fișierul de ieșire undo.out
se va afisa răspunsul pentru fiecare operație de tip Query, câte unul pe linie.
Restricții si precizări
- ;
- ;
- Se garantează că la operatiile de tip Undo au existat cel puțin operatii de Update și Undo înainte.
- , pentru orice operație de tip ;
- L-ați uitat pe Tassadar!
Exemplu
undo.in
5 11
1 1 1 2
1 2 3 1
2 1 3
1 3 2 4
1 2 2 10
2 3 2
3 2
1 1 1 3
2 5 5
3 3
2 4 4
undo.out
2
16
6
7