Fie un șir de n numere naturale v[1], v[2], …, v[n], unde v[i] reprezintă al i-lea număr din șir. O subsecvență [x, y] a șirului v (cu 1 ≤ x ≤ y ≤ n) conține toate elementele v[x], v[x+1], ..., v[y - 1], v[y].
Cerința
Fiind date două numere naturale n și k și un șir v de n numere naturale, scrieți un program care să răspundă la următoarea întrebare: câte subsecvențe conțin simultan cele mai mici k valori distincte din șir?
Date de intrare
Fișierul de intrare secvmin.in conține pe prima linie numerele n și k, iar pe cea de a doua linie se vor afla numerele naturale v[1], v[2], …, v[n], cu semnificația din enunț. Numerele scrise pe aceeași linie sunt separate prin câte un spațiu.
Date de ieșire
Fișierul de ieșire secvmin.out va conține o singură linie pe care va fi scris răspunsul la cerința problemei.
Restricții și precizări
1 ≤ n ≤ 1.000.0001 ≤ k ≤ 51 ≤ v[i] ≤ 1.000.000.000, pentru1 ≤ i ≤ n- Se garantează că șirul va conține cel puțin
kvalori distincte.
Exemplul 1:
secvmin.in
7 1 1 3 2 2 1 3 2
secvmin.out
19
Explicație
k=1. Cea mai mică valoare din șir este egală cu 1. Subsecvențele care conțin valoarea 1 sunt:
[1 1], [1 2], [1 3], [1 4], [1 5], [1 6], [1 7],
[2 5], [2 6], [2 7],
[3 5], [3 6], [3 7],
[4 5], [4 6], [4 7],
[5 5], [5 6], [5 7].
Exemplul 2:
secvmin.in
7 2 1 5 2 2 1 5 2
secvmin.out
15
Explicație
k=2. Cea mai mică valoare din șir este egală cu 1, iar a doua cea mai mică valoare din șir este egală cu 2.
Subsecvențele care conțin valorile 1 și 2 sunt:
[1 3], [1 4], [1 5], [1 6], [1 7],
[2 5], [2 6], [2 7],
[3 5], [3 6], [3 7],
[4 5], [4 6], [4 7],
[5 7].