Pagini recente » Cod sursa (job #1485846) | Cod sursa (job #288416) | Cod sursa (job #2265895) | Cod sursa (job #2320198) | Cod sursa (job #2476866)
#include <stdio.h>
using namespace std;
long long v[100001];
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
long long n,k,st,dr,mij,i,s=0,rez;
scanf("%lld %lld",&k,&n);
for(i=1;i<=n;i++)
{
scanf("%lld",&v[i]);
s+=v[i];
}
st=1;
dr=s/k;
while(st<=dr)
{
mij=(st+dr)/2;
s=0;
i=1;
while(s<mij*k && i<=n)
{
if(v[i]<mij)
{
s+=v[i];
}
else
{
s+=mij;
}
}
if(s>=mij*k)
{
rez=mij;
st=mij+1;
}
else
{
dr=mij-1;
}
}
printf("%lld",rez);
return 0;
}