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
36
37
#include <iostream>

const int max_size = 5 * 100 * 1000 + 20;

int n;
int k;
int bottle;
int itr;

long long answer;

bool occur[max_size];
int side;

int main(){
        std::cin >> n >> k;

        for(int i = 0; i < max_size; i++)
                occur[i] = false;
        bottle = 0;
        answer = 0;
        for(int i = 0; i < n; i++){
                std::cin >> side;
                if(bottle < k && occur[side] == false){
                        occur[side] = true;
                        answer += i - bottle;
                        bottle++;
                }
        }

        if(bottle >= k)
                std::cout << answer << "\n";
        else
                std::cout << "-1\n";

        return 0;
}