Cod sursa(job #490135)

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