Cod sursa(job #2046273)

Utilizator VladAfrasineiAfrasinei VladAfrasinei Data 23 octombrie 2017 17:33:02
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int n,k,a[100001];
long long s,st,dr,maxi;
int main()
{
    int i,m;
fin>>k>>n;
for(i=1;i<=n;i++)
    {fin>>a[i];
    s=s+a[i];
    }
st=1;
dr=s/k;
while(st<=dr)
{
    m=(st+dr)/2;
    s=0;
    for(i=1;i<=n;i++)
        if(a[i]>m)
            s+=m;
        else
            s+=a[i];
        if(s/k>=m)
            {st=m+1;
            if(m>maxi)
                maxi=m;
            }
        else
            dr=m-1;
}
fout<<maxi;
    return 0;
}