Pagini recente » Cod sursa (job #316074) | Cod sursa (job #904975) | Cod sursa (job #2729100) | Cod sursa (job #947924) | Cod sursa (job #392567)
Cod sursa(job #392567)
#include <cstdio>
#define ll long long
int a[100010], k, n;
ll s[100010];
int verif (ll x)
{
int l=1, r=n, m, p=0;
while (l<=r)
{
m=(l+r)/2;
if (a[m]>=x)
{
r=m-1;
p=m;
} else
if (a[m]<x) l=m+1;
}
int ck=k-(n-p+1);
ck-=s[p-1]/x;
if (ck<=0) return 1; else return 0;
}
ll search(ll l, ll r)
{
ll m, s=0;
while (l<=r)
{
m=(l+r)/2;
if (verif(m))
{
s=m;
l=m+1;
} else r=m-1;
}
return s;
}
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
scanf("%d %d",&k,&n);
int i;
for (i=1; i<=n; i++)
{
scanf("%d",&a[i]);
s[i]=s[i-1]+a[i];
}
printf("%lld",search(1,s[n]/k));
}