Pagini recente » Cod sursa (job #521307) | Cod sursa (job #3003487) | Cod sursa (job #570189) | Cod sursa (job #2089530) | Cod sursa (job #119372)
Cod sursa(job #119372)
#include <stdio.h>
long long a[100010];
long long i,k,n,sm,h,g,nr,m;
int calc(long long lim)
{
long long i,s=0;
for (i=1;i<=n;i++)
{
if (a[i]>lim)
s+=lim;
else s+=a[i];
}
if (s>=k*lim)
return 0;
else return 1;
}
void search(long long li,long long ls)
{
m=(li+ls)/2;
h=calc(m);
g=calc(m+1);
if (h==1)
search(li,m-1);
else if (h==0 && g==1)
nr=m;
else search(m+1,ls);
}
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
scanf("%lld %lld",&k,&n);
for (i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
sm+=a[i];
}
search(1,sm/k);
printf("%lld",nr);
fclose(stdin);
fclose(stdout);
}