calafat

Time limit: 0.35s Memory limit: 64MB Input: calafat.in Output: calafat.out

Această problemă se numește Calafat pentru că a fost compusă în timpul excursiei la Calafat de mâine.

Cerință

Se dă un șir format din N numere naturale. Pentru fiecare valoare distinctă dintr-o subsecvență cuprinsă între 2 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

Pe prima linie a fișierului de intrare calafat.in se vor afla două numere natural N și M. Pe a doua linie se vor afla cele N numere din sirul 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

În fișierul de ieșire calafat.out se vor afișa M numere naturale, câte unul pe fiecare linie, reprezentând cele M sume cerute.

Restricții și precizări

  • 1 ≤ N, M ≤ 200 000
  • 1 ≤ 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 000 iar numărul de elemente distincte din șir este maxim 100.
  • 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ţii

În prima subsecvență fiecare valoare apare o singură dată, deci suma diferențelor este 0.

În a doua subsecvență: Valoarea 3 apare la indicii 2 și 7 rezultând diferența 7-2=5 Valoarea 1 apare la indicii 3 și 6 => diferența 6–3=3

Valoarea 2 apare la indicii 4 și 5 => diferența 5-4=1

Suma diferențelor este 9.

În a treia subsecvență: Valoarea 1 apare la indicii 3 și 6 => diferența 6–3=3

Valoarea 2 apare la indicii 4 și 5 => diferența 5-4=1

Suma diferențelor este 4.

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