Pagini recente » Cod sursa (job #950107) | Cod sursa (job #580683) | Cod sursa (job #2610921) | Cod sursa (job #2845135) | Cod sursa (job #468728)
Cod sursa(job #468728)
#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(low<high)
{
mid=(low+high)/2;
if(solve(mid))
low=mid+1;
else high=mid;
}
if(solve(low)) mid=low;
printf("%lld\n", mid);
return 0;
}