Această problemă se numește Calafat pentru că a fost compusă în timpul excursiei la Calafat de mâine.
Cerința
Se dă un șir format din N numere naturale. Pentru fiecare valoare distinctă dintr-o subsecvență cuprinsă între doi indici st si dr considerăm distanța dintre indicii primei și ultimei apariții ale acesteia în cadrul subsecvenței. Dându-se M subsecvențe de forma [st, dr], se cere să se calculeze suma distanțelor corespunzătoare tuturor valorilor distincte din subsecvență.
Date de intrare
Fișierul de intrare calafat.in conține pe prima linie două numere natural N și M. Pe a doua linie se vor afla cele N numere din șirul dat. Pe următoarele M linii se vor afla câte două numere st și dr, cu semnificația că vrem să calculăm suma menționată mai sus pentru subsecvența [st,dr].
Date de ieșire
Fișierul de ieșire calafat.out va conține M numere naturale, câte unul pe fiecare linie, reprezentând cele M sume cerute.
Restricții și precizări
1 ≤ N, M ≤ 2000001 ≤ st ≤ dr ≤ N- Valorile din șir se vor afla în intervalul
[1, N] - Pentru 20% din teste se garantează că
N, M ≤ 1000 - Pentru alte 25% din teste se garantează că
N, M ≤ 35 000iar numărul de elemente distincte din șir este maxim100. - Pentru alte 25% din teste se garantează că
N, M ≤ 70 000
Exemplu:
calafat.in
7 3 1 3 1 2 2 1 3 2 4 2 7 3 6
calafat.out
0 9 4
Explicație
În prima subsecvență fiecare valoare apare o singură dată, deci suma diferențelor este 0.
În a doua subsecvență:
- Valoarea
3apare la indicii2și7rezultând diferența7-2=5 - Valoarea
1apare la indicii3și6=> diferența6–3=3 - Valoarea
2apare la indicii4și5=> diferența5-4=1
Suma diferențelor este 9.
În a treia subsecvență:
- Valoarea
1apare la indicii3și6=> diferența6–3=3 - Valoarea
2apare la indicii4și5=> diferența5-4=1
Suma diferențelor este 4.