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
//Karol Sygiet
#include<bits/stdc++.h>

int main() {
    std::ios::sync_with_stdio(false);

    int lButelek, lRoznychLewych;
    std::cin >> lButelek >> lRoznychLewych;
    int* butelki = new int[lButelek];

    for(int i=0; i<lButelek; i++){
        std::cin >> butelki[i];
    }

    long long int iloscZamian = 0;
    bool znaleziono = false;
    std::set<int> uzyte;

    int indeksKoncaObecnegoPrzedzialu = 0;
    for(int i=0; i<lButelek; i++){
        if(uzyte.find(butelki[i]) == uzyte.end()){
            uzyte.insert(butelki[i]);
            iloscZamian += i - indeksKoncaObecnegoPrzedzialu;

            indeksKoncaObecnegoPrzedzialu++;
            i--;
        }
        if (indeksKoncaObecnegoPrzedzialu >= lRoznychLewych){
            break;
        }
    }

    if(indeksKoncaObecnegoPrzedzialu != lRoznychLewych){
        iloscZamian = -1;
    }
 
    std::cout << iloscZamian;
    delete[] butelki;

    return 0;
}