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
38
39
40
41
42
43
44
45
46
47
48
49
50
#include<bits/stdc++.h>
using namespace std;


int main(){
    ios_base::sync_with_stdio(NULL);
    cin.tie(NULL);
    cout.tie(NULL);

    int n, k;
    cin >> n >> k;

    vector<int> butle(n);
    map<int, int> uni_butle;
    
    for(int i = 0; i < n; i++){
        cin >> butle[i];
    }

    int result = 0, i = 0, j = 1;
    for(i; i < k; i++){
        int el = butle[i];
        if(uni_butle.find(el) == uni_butle.end()){
            uni_butle[el] = 1;
        }
        else{
            int new_el = butle[j];
            while(uni_butle.find(new_el) != uni_butle.end() && j < n){
                j++;
                new_el = butle[j];
            }

            butle[i] = new_el;
            butle[j] = el;

            uni_butle[new_el] = 1;
            result += j - i;

            j++;
        }
        if(j > n){
            break;
        }
    }

    if(i < k) cout << -1;
    else cout << result;

    return 0;
}