dss

Time limit: 0.4s Memory limit: 128MB Input: dss.in Output: dss.out

Se dau NN numere naturale s1s_1, s2s_2, \dots, sNs_N și QQ interogări de forma a ba \ b.

Cerința

Să se determine pentru fiecare interogare [a;b][a; b] numărul de subșiruri formate din elemente distincte ale secvenței sas_a, sa+1s_{a+1}, sa+2s_{a+2}, \dots, sbs_b. Prin secvență a șirului ss se înțelege orice succesiune de elemente aflate pe poziții consecutive sas_a, sa+1s_{a+1}, sa+2s_{a+2}, \dots, sbs_b, cu 1abN1 \leq a \leq b \leq N.

Prin subșir al șirului ss se înțelege orice succesiune de elemente aflate pe poziții în ordine strict crescătoare, dar nu neapărat consecutive, sa1s_{a_1}, sa2s_{a_2}, \dots, saks_{a_k} cu 1a1<a2<<akN1 \leq a_1 < a_2 < \dots < a_k \leq N.

Date de intrare

Fișierul de intrare dss.in conține pe primul rând numerele NN și QQ. Pe linia a doua sunt scrise NN numere naturale separate prin câte un spațiu. Pe următoarele QQ rânduri sunt scrise câte două numere naturale a ba \ b, separate prin spațiu, reprezentând capetele intervalelor de interogare date.

Date de ieșire

În fișierul de ieșire dss.out pe fiecare dintre primele QQ rânduri este scris câte un număr natural reprezentând numărul tuturor subșirurilor formate din elemente distincte conținute în secvența din interogarea corespunzătoare.

Restricții și precizări

  • 1N400 0001 \leq N \leq 400 \ 000
  • 1Q10 0001 \leq Q \leq 10 \ 000
  • 1skN1 \leq s_k \leq N
  • 1abN1 \leq a \leq b \leq N
  • Numărul de subșiruri pentru fiecare interogare vor fi calculate modulo 1 000 000 0071 \ 000 \ 000 \ 007

Exemplu

dss.in

5 3 
1 2 3 2 3
1 4
2 5
1 3

dss.out

11
8
7

Explicație

  • Subșirurile formate din elemente distincte din secvența s[14s[1 \dots 4] = (1 2 3 21 \ 2 \ 3 \ 2) sunt 11, 22, 33, 22, 1 21 \ 2, 1 31 \ 3, 1 21 \ 2, 2 32 \ 3, 3 23 \ 2, 1 2 31 \ 2 \ 3, 1 3 21 \ 3 \ 2, deci în total 1111 subșiruri.
  • Subșirurile formate din elemente distincte din secvența s[25s[2 \dots 5] = (2 3 2 32 \ 3 \ 2 \ 3) sunt 22, 33, 22, 33, 2 32 \ 3, 2 32 \ 3, 3 23 \ 2, 2 32 \ 3, deci 88 subșiruri.
  • Subșirurile formate din elemente distincte din secvența s[13s[1 \dots 3] = (1 2 31 \ 2 \ 3) sunt 11, 22, 33, 1 21 \ 2, 1 31 \ 3, 2 32 \ 3, 1 2 31 \ 2 \ 3, deci 77 subșiruri.

Log in or sign up to be able to send submissions!