Cod sursa(job #2396167)

Utilizator mircearoataMircea Roata Palade mircearoata Data 3 aprilie 2019 11:42:11
Problema Grupuri Scor 68
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("grupuri.in");
ofstream out("grupuri.out");

int n, k;
int ans;
int v[100005];

bool possible(int x)
{
    int cntAnimals = 0;
    for(int i = 1; i <= n; i++)
        cntAnimals += min(v[i], x);
    return cntAnimals >= x*k;
}

int main()
{
    in >> k >> n;
    for(int i = 1; i <= n; i++)
        in >> v[i];
    sort(v+1, v+n+1);
    for(int step = (1 << 20); step; step >>= 1)
        if(possible(ans+step))
            ans += step;
    out << ans;
    return 0;
}