Pagini recente » Cod sursa (job #1509816) | Cod sursa (job #617041) | Cod sursa (job #720037) | Cod sursa (job #2541885) | Cod sursa (job #468741)
Cod sursa(job #468741)
#include<stdio.h>
int a[100001];
int n,k,i;
long long sum, low, high, mid, aux;
int solve(long long p)
{
aux=p*k;
int i;
for(i=1;i<=n&&aux>0;i++)
if(a[i]>p)
aux-=p;
else aux-=a[i];
if(aux<=0)
return 1;
else return 0;
}
int main()
{
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
scanf("%d%d", &k, &n);
for(i=1;i<=n;i++)
{
scanf("%d", &a[i]);
sum+=a[i];
}
low=1; high=sum/k;
while(high-low>1)
{
mid=(low+high)/2;
if(solve(mid))
low=mid;
else high=mid-1;
}
if(!solve(low)) low=0;
if(high>low&&solve(high)) low=high;
printf("%lld\n", low);
return 0;
}