CSES - Lukujonot
  • Time limit: 1.00 s
  • Memory limit: 128 MB

Taulukossa on nn lukua, ja ne on indeksoitu 1,2,,n1,2,\ldots,n. Tehtäväsi on toteuttaa tietorakenne, joka tarjoaa seuraavat operaatiot:

  1. lisää välille [a,b][a,b] lukujono x+kyx+ky (ensimmäiseen lukuun xx, toiseen lukuun x+yx+y, kolmanteen lukuun x+2yx+2y jne.)
  2. laske välin [a,b][a,b] lukujen summa

Syöte

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

Seuraavalla rivillä on nn lukua t1,t2,,tnt_1,t_2,\ldots,t_n, jotka kuvaavat taulukon alkusisällön.

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

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

Jos kysely on tyyppiä 1, rivi on muotoa "1 aa bb xx yy". Tämä tarkoittaa, että välin [a,b][a,b] lukuja tulee kasvattaa parametreilla xx ja yy.

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

Tuloste

Tulosta jokaisesta tyypin 2 kyselystä lukujen summa omalle rivilleen.

Rajat

  • 1n1051 \le n \le 10^5
  • 106ti106-10^6 \le t_i \le 10^6
  • 1q1051 \le q \le 10^5
  • 1abn1 \le a \le b \le n
  • 100x,y100-100 \le x, y \le 100

Esimerkki

Syöte:

5
4 2 3 1 7
3
2 1 5
1 1 5 1 2
2 1 5

Tuloste:

17
42