#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000000;
int tab[MAXN+7];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, k;
cin >> n >> k;
int najliczniej = 1; int licz = 1; int aktualna = tab[0]; int ile_wiekszych = -1; int wynik = -1;
for(int i = 0; i < n; i++)
cin >> tab[i];
sort(tab, tab+n);
for(int i = 1; i < n; i++){
if(tab[i] == aktualna){
licz++;
if(licz > najliczniej){
najliczniej = licz;
ile_wiekszych = n-i-1;
}
}
else{
aktualna = tab[i];
licz = 1;
}
}
if(k <= ile_wiekszych){
wynik = najliczniej + k;
cout << wynik << '\n';
}
else if(k > ile_wiekszych)
wynik = najliczniej + ile_wiekszych + (k-ile_wiekszych);
return 0;
}
Taki prosty kod. Nie widzę tu powodu na error EOF. W zadaniu limity to:
2 <= n, k <= 1'000'000, 0 <= tab[i] <= 10^9