1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int wyst[500001];
vector<long long> najblizsze;
int n, k;

int main()
{
    for(int i=0; i<500001; i++) wyst[i]=0;
    scanf("%d %d", &n, &k);
    int zmpom;
    for(int i=0; i<n; i++){
        scanf("%d", &zmpom);
        if(wyst[zmpom]==0){
            wyst[zmpom]=i+1;
            najblizsze.push_back(i+1);
        }
    }
    sort(najblizsze.begin(), najblizsze.end());
    //for(int i=0; i<najblizsze.size(); i++)
        //cout << najblizsze[i] << " ";
    long long odp=0;
    if(najblizsze.size()>=k)
        for(int i=0; i<k; i++)
            odp+=najblizsze[i]-i-1;
    else odp=-1;
    //cout << endl;
    printf("%lld", odp);
    return 0;
}