Cod sursa(job #2045303)

Utilizator gavra_bogdanBogdan Gavra gavra_bogdan Data 22 octombrie 2017 09:41:58
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<bits/stdc++.h>
const int nmax=100005;
int v[nmax];
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
    long long sum=0,mid=0,st=0,dr,last=0;
    int n,i,j,k;
    scanf("%d%d",&k,&n);
    for(i=1; i<=n; i++)
    {
        scanf("%d",&v[i]);
        sum+=v[i];
    }
    dr=sum/k;
    while(st<=dr)
    {
        sum=0;
        mid=(st+dr)/2;
        for(i=1; i<=n; i++)
        {
            if(mid>=v[i])
                sum+=v[i];
            else
                sum+=mid;
        }
        if(sum/k>=mid)
        {
            last=sum/k;
            st=mid+1;
        }
        else
            dr=mid-1;
    }
    printf("%lld",last);
    return 0;
}