- Time limit: 2.50 s
- Memory limit: 512 MB
Taulukossa on lukua, jotka on indeksoitu , ja ovat kaikki aluksi nollia. Lisäksi ylläpidetään lukua , joka on myös aluksi 0. Toteuta tietorakenne, joka tarjoaa seuraavat operaatiot:
- kasvata jokaista välillä olevaa lukua :llä
- laske välin lukujen summa modulo , ja tee siitä uusi luku
Mikäli , väli tarkoittaa tässä samaa kuin . on jakojäännös, kun luku jaetaan luvulla .
Syöte
Syötteen ensimmäisellä rivillä on luvut ja , taulukon koko ja kyselyjen määrä. Tämän jälkeen syötteessä on riviä, joista jokainen kuvaa yhden kyselyn.
Jos kysely on tyyppiä 1, rivi on muotoa "1 ". Tämä tarkoittaa, että välin lukuja tulee kasvattaa :llä.
Jos kysely on tyyppiä 2, rivi on muotoa "2 ". Tämä tarkoittaa, että tulee laskea välin lukujen summa modulo , tulostaa se, ja tallentaa se uudeksi luvuksi .
Tuloste
Tulosta jokaisesta tyypin 2 kyselystä lukujen summa modulo omalle rivilleen.
Rajat
Esimerkki
Syöte:
7 4 1 2 4 3 2 3 6 1 0 4 2 2 4 2
Tuloste:
6 1
Tilanne ja muutettu/kyselty väli kyselyiden jälkeen:
Taulukko ,
Taulukko ,
Taulukko ,
Taulukko ,