Un șir de numere naturale se numește palindrom dacă pentru orice din intervalul .
Spunem că un șir de numere naturale are proprietatea P dacă elementele sale pot fi reordonate astfel încât șirul rezultat să fie palindrom.
Un subșir al șirului este un șir de forma cu proprietatea că .
Valoarea unui șir , notată cu , este numărul de subșiruri nevide ale șirului care au proprietatea P. Două subșiruri se consideră diferite dacă indicii selectați sunt diferiți, chiar dacă elementele sunt aceleași pe toate pozițiile.
Cerință
Se dau un șir de numere naturale și întrebări de forma . Pentru fiecare întrebare trebuie să aflați . Deoarece această valoare poate fi foarte mare, se cere afișarea restului acesteia la împărțirea cu .
Date de intrare
Fișierul de intrare allp.in
conține pe prima linie numerele și . Următoarea linie conține numere naturale nenule, elementele șirului . Următoarele linii conțin fiecare câte două numere, și , conform descrierii din enunț.
Date de ieșire
Fișierul de ieșire allp.out
conține linii, pe linia aflându-se răspunsul la cea de a -a întrebare din fișierul de intrare.
Restricții și precizări
- pentru orice
- pentru orice întrebare
# | Punctaj | Restricții |
---|---|---|
1 | 7 | , , pentru orice întrebare |
2 | 10 | , |
3 | 21 | |
4 | 12 | , , |
5 | 17 | |
6 | 15 | |
7 | 18 | Fără restricții suplimentare |
Exemplu
allp.in
6 3
1 1 2 3 2 4
1 3
3 6
1 6
allp.out
5
7
19
Explicație
Pentru prima întrebare subșirurile cu proprietatea P sunt formate din următoarele mulțimi de indici: , , , , .
Pentru a doua întrebare subșirurile cu proprietatea P sunt formate din următoarele mulțimi de indici: , , , , , , .