Pagini recente » Cod sursa (job #1568760) | Cod sursa (job #2629081) | Cod sursa (job #2339502) | Cod sursa (job #1316001) | Cod sursa (job #623772)
Cod sursa(job #623772)
#include<cstdio>
const int V = 100000;
int n,k,a[V];
long long s[V], sol;
bool verif(int x)
{
int dr=n,st=1,val=0;
while(st<=dr)
{
int m=(st+dr)/2;
if(x>=a[m])
{
st=m+1;
val=m;
}
else
{
dr=m-1;
}
}
return s[val]/k + n-val >= x;
}
int main()
{
int max;
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]);
s[i]=s[i-1]+a[i];
if(a[i]>max) max=a[i];
}
long long st=0;
long long dr=s[n]/k;
while (st <= dr) {
long long m = (st+dr) / 2;
if (verif(m)) {
sol = m;
st = m+1;
} else {
dr = m-1;
}
}
printf("%d\n",sol);
return 0;
}