Pagini recente » Cod sursa (job #3291458) | Cod sursa (job #3267387) | Cod sursa (job #3291771) | Cod sursa (job #1092051) | Cod sursa (job #623959)
Cod sursa(job #623959)
#include<cstdio>
const int V = 100001;
int n,k,a[V];
long long s[V], sol;
bool verif(long long 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]/x + n-val >= k;
}
int main()
{
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];
}
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("%lld\n",sol);
return 0;
}