Code Submission Evaluation System Login

Datatähti-valmennus

CSES - Datatähti-valmennus - Summat

Summat


View task | Model solution | Statistics


Summat

Time limit:1.00 s
Memory limit:128 MB

Taulukossa on $n$ lukua, jotka on indeksoitu $1,2,\ldots,n$. Toteuta tietorakenne, joka tarjoaa seuraavat operaatiot:
  1. kasvata jokaista välillä $[a,b]$ olevaa lukua $x$:llä
  2. muuta jokainen välillä $[a,b]$ oleva luku $x$:ksi
  3. laske välin $[a,b]$ lukujen summa
Syöte

Syötteen ensimmäisellä rivillä on kokonaisluku $n$, taulukon koko.

Seuraavalla rivillä on $n$ lukua $t_1,t_2,\ldots,t_n$, jotka kuvaavat taulukon alkusisällön.

Sitten syötteessä on luku $q$, kyselyjen määrä.

Lopuksi syötteessä on $q$ riviä, joista jokainen kuvaa yhden kyselyn.

Jos kysely on tyyppiä 1, rivi on muotoa "1 $a$ $b$ $x$". Tämä tarkoittaa, että välin $[a,b]$ lukuja tulee kasvattaa $x$:llä.

Jos kysely on tyyppiä 2, rivi on muotoa "2 $a$ $b$ $x$". Tämä tarkoittaa, että välin $[a,b]$ luvuiksi tulee muuttaa $x$.

Jos kysely on tyyppiä 3, rivi on muotoa "3 $a$ $b$". Tämä tarkoittaa, että tulee laskea välin $[a,b]$ lukujen summa.

Tuloste

Tulosta jokaisesta tyypin 3 kyselystä lukujen summa omalle rivilleen.

Rajat
Esimerkki

Syöte:
5
2 3 1 1 5
5
3 3 5
1 2 4 2
3 3 5
2 2 4 5
3 3 5


Tuloste:
7
11
15