- Time limit: 1.00 s
- Memory limit: 128 MB
Annettuna on n \times n-ruudukko, jossa on lukuja. Toteuta tietorakenne, joka tarjoaa seuraavat operaatiot:
- muuta ruudukon kohdan (y,x) arvoksi u
- laske lukujen summa aliruudukossa ruudusta (y_1,x_1) ruutuun (y_2,x_2)
Syöte
Syötteen ensimmäisellä rivillä on kokonaisluvut n ja q: ruudukon koko ja kyselyiden määrä.
Sitten syötteessä on n riviä, joista jokaisella on n lukua muotoa t_{i,j}. Nämä luvut kuvaavat ruudukon sisällön alussa.
Lopuksi syötteessä on q riviä, joista jokainen kuvaa yhden kyselyn.
Jos kysely on tyyppiä 1, rivi on muotoa "1 y x u". Tämä tarkoittaa, että ruudukon kohtaan (y,x) tulee luku u.
Jos kysely on tyyppiä 2, rivi on muotoa "2 y_1 x_1 y_2 x_2". Tämä tarkoittaa, että täytyy laskea aliruudukon summa ruudusta (y_1,x_1) ruutuun (y_2,x_2).
Tuloste
Tulosta jokaisesta tyypin 2 kyselystä lukujen summa omalle rivilleen.
Rajat
- 1 \le n \le 1000
- -10^6 \le t_{i,j} \le 10^6
- 1 \le q \le 10^5
- 1 \le x,y \le n
- 1 \le y_1 \le y_2 \le n
- 1 \le x_1 \le x_2 \le n
- -10^6 \le u \le 10^6
Esimerkki
Syöte:
3 4 2 3 1 2 1 4 1 5 1 2 2 1 3 3 1 2 2 5 1 3 2 3 2 2 1 3 3
Tuloste:
14 16