Pagini recente » Cod sursa (job #2633193) | Cod sursa (job #68742) | Cod sursa (job #2342777) | Cod sursa (job #1365886) | Cod sursa (job #119370)
Cod sursa(job #119370)
#include <stdio.h>
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("%ld",&a[i]);
sm+=a[i];
}
search(1,sm/k);
printf("%lld",nr);
fclose(stdin);
fclose(stdout);
}