Pagini recente » Cod sursa (job #574543) | Cod sursa (job #763016) | Cod sursa (job #1502571) | Cod sursa (job #118025) | Cod sursa (job #623768)
Cod sursa(job #623768)
#include<cstdio>
const int V = 100000;
int n,k,a[V],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,st,dr;
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];
}
st=0;
dr=s[n]/k;
while (st <= dr) {
int m = (st+dr) / 2;
if (verif(m)) {
sol = m;
st = m+1;
} else {
dr = m-1;
}
}
printf("%d\n",sol);
return 0;
}