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

int liczbaUczestnikow; // liczba uczestników 1..2000
int minimumKoszulek; // minimalna liczba koszulek 1..2000 >= liczbaUczestnikow
int punkty; // liczba punktów przez i-tego zawodnika 1..120
int ileZPunktami[121]; // liczba zawodników o liczbie punktów i 1..2000
int liczbaKoszulek; // liczba koszulek, które trzeba rozdać 1..2000 >= minimumKoszulek

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

  std::cin >> liczbaUczestnikow >> minimumKoszulek;
  for (int i = 0; i < liczbaUczestnikow; i++)
  {
    std::cin >> punkty;
    ileZPunktami[punkty]++;
  }

  int liczbaPunktow = 120;
  while (liczbaKoszulek < minimumKoszulek)
  {
    liczbaKoszulek += ileZPunktami[liczbaPunktow];
    liczbaPunktow--;
  }

  std::cout << liczbaKoszulek << '\n';
}