Sumex

Time limit: 0.9s
Memory limit: 256MB
Input:
Output:

Se dă un șir a1,,ana_1, \ldots, a_n și qq query-uri independente. În cadrul fiecărui query, se dau 2 numere naturale ll și rr. Se consideră secvența al,al+1,,ara_l, a_{l+1}, \ldots, a_{r}. Sarcina ta este să calculezi suma celor mai mici numere excluse ale tuturor secvențelor de forma ai,ai+1,,aja_{i}, a_{i+1}, \ldots, a_{j}, pentru lijrl \leq i \leq j \leq r.

Cel mai mic număr exclus al unei secvențe este cel mai mic număr natural care nu apare în secvență. De exemplu, pentru secvența 0,1,4,20, 1, 4, 2 acesta este 33, dar pentru secvența 1,2,3,41, 2, 3, 4 acesta este 00.

Date de intrare

Prima linie din input conține numerele nn și qq. A doua linie conține nn numere a1,a2,,ana_1, a_2, \dots, a_n, care reprezintă șirul inițial. Fiecare dintre următoarele qq linii conține două numere ll și rr, care descriu, în ordine, fiecare query.

Date de ieșire

Output-ul trebuie să conțină răspunsurile celor qq query-uri în ordine, fiecare pe câte un rând nou.

Restricții

  • 1n,q21051 \leq n, q \leq 2 \cdot 10^5
  • 0ain0 \leq a_i \leq n
  • 1lrn1 \leq l \leq r \leq n

Subtask 1 (3 puncte)

  • 1ain1 \leq a_i \leq n

Subtask 2 (10 puncte)

  • 1q2001 \leq q \leq 200
  • rl200r - l \leq 200 pentru fiecare query

Subtask 3 (12 puncte)

  • 1n5 0001 \leq n \leq 5 \ 000

Subtask 4 (15 puncte)

  • Fiecare număr de la 00 la n1n - 1 apare exact o dată în a1,a2,ana_1, a_2 \dots, a_n.

Subtask 5 (15 puncte)

  • 0ai1000 \leq a_i \leq 100
  • Nu există două query-uri ii și jj astfel încât li<ljl_i < l_j și rj<rir_j < r_i.

Subtask 6 (22 puncte)

  • l=1l = 1 pentru fiecare query.

Subtask 7 (23 puncte)

  • Fără restricții suplimentare.

Exemplu

stdin

6 3
0 1 2 0 1 3
1 2
3 5
1 6

stdout

3
7
39

Explicații

Explicații pentru primele două query-uri:



Explicație pentru al treilea query:

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