Pentru un șir de numere întregi vrei să aplici o secvență de operații astfel încât să obții un nou șir , tot de lungime . Inițial șirul este vid.
Într-o operație faci una dintre următoarele:
- Alegi toate pozițiile pare () din și le adaugi în această ordine la finalul șirului . După aceea ștergi toate aceste elemente din . Această operație se poate aplica doar dacă șirul mai conține cel puțin elemente (observați că dacă șirul ar avea un singur element atunci aplicânda această operație, nu s-ar schimba nici , nici ).
- Alegi toate pozițiile impare () din și le adaugi în această ordine la finalul șirului . După aceea ștergi toate aceste elemente din . Această operație se poate aplica indiferent de lungimea șirului .
Operațiile se repetă până ce șirul devine vid.
De exemplu, pentru șirul , o secvență validă de operații este .
.
.
Se observă că ultima operație, este obligatoriu de tipul , deoarece șirul conținea un singur element (pe ).
Cerință
Se dă , șirul și întrebări de forma . Să se spună pentru fiecare întrebare în câte moduri putem aplica operațiile astfel încât , unde este suma maximă a unei subsecvențe din .
Date de intrare
Pe prima linie a fișierului parimpar.in
se află numerele întregi în ordinea aceasta.
Pe a doua linie se află șirul .
Pentru fiecare de la la , pe linia se află câte două numere, și , reprezentând cea de a -a întrebare.
Date de ieșire
În fișierul parimpar.out
se vor afișa linii. Pe linia se va afla un singur număr natural, reprezentând răspunsul la întrebarea .
Restricții și precizări
- ;
- Subsecvențele vide se numără și ele, așadar subsecvența de sumă maximă a unui șir are valoarea cel puțin .
# | Punctaj | Restricții |
---|---|---|
1 | 22 | |
2 | 42 | |
3 | 36 | Fără alte restricții |
Exemplu
parimpar.in
8 4
3 -4 5 8 -6 2 -11 7
0 15
17 17
2 100
17 21
parimpar.out
1
3
8
5
Explicație
Aplicând secvența de operații obținem . . La prima întrebare, aceasta este singura secvență de operații validă.
Aplicând secvența de operații , obținem . . Aceasta contribuie la ultimele două întrebări.