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
#include<cstdio>
#include<cmath>
#include<set>


using namespace std;

int main(){
    int n,k,o, to_shift=0, result=0, last_unique=0;
    scanf("%d %d", &n, &k);
    set<int> unikalne = set<int>();
    pair<set<int>::iterator,bool> ret;
    for( int i = 0; i <n; i++){
        if(k==0)
            break;
        scanf("%d", &o);
        ret = unikalne.insert(o);
        if (ret.second==false){
            to_shift++;
            result +=i;
        } else{
            k--;
            last_unique = i;
        }
     }
     if (k > 0){
         printf("-1");
         return 0;
     }    
     result = to_shift * last_unique - result - (to_shift - 1) * to_shift / 2;
     printf("%d", result);
     return 0;
}