Cod sursa(job #490139)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 4 octombrie 2010 23:55:46
Problema Grupuri Scor 94
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<cstdio>
long long n,k,a[1<<20];
void read()
{
    freopen("grupuri.in","r",stdin);
    freopen("grupuri.out","w",stdout);
    scanf("%lld%lld",&k,&n);
    for(int i=1;i<=n;i++)
        scanf("%lld",&a[i]);
}
long long min(long long x,long long y)
{
    return x<y?x:y;
}
bool posibil(long long nrg)
{
    long long el=0;
    for(int i=1;i<=n;i++)
        el+=min(a[i],nrg);
    if(el>=(long long)k*nrg)
        return true;
    return false;
}
long long cautb()
{
    long long pas=1,i=0;
    for(int j=1;j<=40;j++)
        pas*=(long long)2;
    for(i=0;pas;pas>>=1)
        if(posibil(i+pas))
            i+=pas;
    return i;
}
int main()
{
    read();
    printf("%lld",cautb());
    return 0;
}