Cod sursa(job #1389860)

Utilizator akaprosAna Kapros akapros Data 16 martie 2015 18:18:36
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 100005
using namespace std;
int n,i,j,k;
long long s,st,dr,mij,sol,v[Nmax];
int gr(long long m)
{
    int i;
    long long nr;
    for (i=1;i<=n;i++)
    nr+=min(m,v[i]);
    if (nr>=m*k*1LL)
    return 1;
    return 0;
}
int main()
{
    freopen("grupuri.in","r",stdin);
    freopen("grupuri.out","w",stdout);
    scanf("%d %d",&k,&n);
    for (i=1;i<=n;i++)
    scanf("%lld",&v[i]),s=(s+v[i])*1LL;
    st=1LL; dr=s/k;
    while (st<=dr)
    {
        mij=(st+dr)/2;
        if (gr(mij)==1)
        st=mij+1,
        sol=max(sol,mij);
        else dr=mij-1;
    }
    printf("%lld",sol);
    return 0;
}