- Time limit: 0.50 s
- Memory limit: 128 MB
Tehtäväsi on toteuttaa tietorakenne, joka pitää yllä listaa, jonka jokainen alkio on taulukko. Aluksi listassa on vain yksi taulukko.
Rakenteen tulee tarjota seuraavat operaatiot:
- muuta taulukon alkion arvoa
- laske taulukon välin lukujen summa
- tee kopio taulukosta ja lisää se listan loppuun
- kopioi taulukon väli taulukkoon
Taulukoissa on lukua, ja ne on indeksoitu .
Listassa olevat taulukot on indeksoitu
Syöte
Syötteen ensimmäisellä rivillä on kokonaisluku , taulukon koko.
Seuraavalla rivillä on lukua , jotka kuvaavat taulukon alkusisällön.
Sitten syötteessä on luku , kyselyjen määrä.
Lopuksi syötteessä on riviä, joista jokainen kuvaa yhden kyselyn.
Jos kysely on tyyppiä 1, rivi on muotoa "1 ". Tämä tarkoittaa, että taulukon alkion arvoksi tulee .
Jos kysely on tyyppiä 2, rivi on muotoa "2 ". Tämä tarkoittaa, että täytyy laskea välin summa taulukossa .
Jos kysely on tyyppiä 3, rivi on muotoa "3 ". Tämä tarkoittaa, että taulukosta tehdään kopio listan loppuun.
Jos kysely on tyyppiä 4, rivi on muotoa "4 ". Tämä tarkoittaa, että taulukosta kopioidaan väli taulukon vastaaviin kohtiin.
Tuloste
Ohjelmasi tulee tulostaa jokaisesta tyypin 2 kyselystä lukujen summa omalle rivilleen.
Rajat
Esimerkki
Syöte:
5 2 3 1 2 5 8 3 1 2 1 1 5 2 2 1 5 1 2 2 7 1 1 3 6 4 2 1 2 4 2 1 1 5 2 2 1 5
Tuloste:
13 13 17 17