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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <vector>
#include <algorithm>

using punktacja = std::vector<int>;

using std::cout;
using std::endl;
using std::cin;

punktacja wczytajDane(int &uczestnicy, int &koszulki) {
    cin >> uczestnicy >> koszulki;

    punktacja punkty;
    int wynik;
    for (int i = 0; i < uczestnicy; i++) {
        cin >> wynik;
        punkty.push_back(wynik);
    }

    return punkty;
}

void wypiszPunkty(int n, int k, punktacja p) {
    cout << n << " " << k << endl;
    for (int i = 0; i < n; i++) {
        cout << p[i] << " ";
    }

    cout << endl;
}

punktacja sumyPrefiksowe(punktacja p, int n) {
    punktacja sumy;
    sumy.push_back(p[n - 1]);

    int pop;
    for (int i = n - 2; i >= 0; i--) {
        pop = sumy[i + 1];
        sumy.push_back(pop + p[i]);
    }

    return sumy;
}

int znajdzLiczbe(punktacja &p, int n, int k) {

    if (k == 0) return 0;

    std::sort(p.begin(), p.end());

    /*int ostatniaPrawilnaKoszulka = n - 1 - k;
    int wartosc = p[ostatniaPrawilnaKoszulka];
    wypiszPunkty(n, k, p);
    int index = ostatniaPrawilnaKoszulka; //- 1;
    cout << p[ostatniaPrawilnaKoszulka] << endl;
    while (index >= 0 && p[index] == wartosc) {
        cout << p[index] << endl;
        index--;
    }

    cout << "n: " <<  n - 1 << " " << index << endl;
    return n - index - 1; //- 1; */

    int ostatniaKoszulka = n - k;//- 1 - k;
    int wartosc = p[ostatniaKoszulka];
    int index = ostatniaKoszulka;
    while (index >= 0 && p[index] == wartosc) {
        index--;
    }

    //cout << index <<  " " << wartosc << " " << ostatniaKoszulka << endl;
    //index = (p[index] == wartosc ? index : (index + 1));
    //cout << index << " " << n << endl;
    return n - index - 1;



}

int main() {
    int n, k;
    punktacja punkty = wczytajDane(n, k);
    //wypiszPunkty(n, k, punkty);
    int ile = znajdzLiczbe(punkty, n, k);
    cout << ile << endl;
    return 0;
}