Se dă un șir V de N numere naturale distincte. O secvență [X, Y] este formată din toate pozițiile consecutive dintre X și Y din șir. Se definește costul unei poziții P ca fiind valoarea din șir de pe poziția P înmulțită cu lungimea maximă a unei secvențe care conține poziția P și a cărei valoare maximă se află tot pe poziția P.
Cerința
Se dau M întrebări de forma: X Y – să se calculeze suma tuturor costurilor pozițiilor din secvența [X, Y].
Atenție! Când se calculează costul unei poziții P din [X, Y], secvența de lungime maximă pe care valoarea V[P] este maximă se calculează în funcție de tot șirul, NU în funcție de secvența [X, Y] (pentru clarificare urmăriți exemplul).
Date de intrare
Fișierul de intrare secvcost.in conține pe prima linie cele două numere N și M, separate prin spațiu. Pe a doua linie se află N numere naturale distincte reprezentând elementele șirului V. Pe următoarele M linii se află perechi de valori X, Y reprezentând întrebările la care trebuie să se răspundă.
Date de ieșire
Fișierul de ieșire secvcost.out va conține M linii cu câte un număr pe fiecare linie reprezentând răspunsul la cele M întrebări, în ordine.
Restricții și precizări
- Toate valorile din șir sunt mai mici sau egale decât
5.000.000 - Pentru 25% din teste
N, M ≤ 500 - Pentru alte 25% din teste
N, M ≤ 10.000 - Pentru restul de 50% din teste
N, M ≤ 200.000
Exemplul 1:
secvcost.in
5 2 2 3 1 5 4 3 3 2 2
secvcost.out
1 9
Explicație
Pentru prima întrebare avem V[3] = 1 care este maxim pe secvența [3, 3]. Costul este 1 * 1 = 1. Pentru a doua întrebare avem V[2] = 3 care este maxim pe secvența [1, 3]. Costul este 3 * 3 = 9.
Exemplul 2:
secvcost.in
5 3 2 3 1 5 4 1 3 5 5 4 4
secvcost.out
12 4 25
Explicație
2*1 + 3*3 + 1*1 = 12
4*1 = 4
5*5 = 25
Exemplul 3:
secvcost.in
10 10 10 30 29 39 34 32 3 6 7 9 6 7 1 7 6 10 1 5 7 9 4 7 3 7 5 6 3 7 6 10
secvcost.out
163 886 232 723 36 757 786 364 786 232