Pagini recente » Cod sursa (job #2561406) | Cod sursa (job #1804082) | Cod sursa (job #705447) | Cod sursa (job #722986) | Cod sursa (job #935358)
Cod sursa(job #935358)
#include <stdio.h>
long long a[100010];
long long k,sm,h,g,nr,m;
long i,n;
int calc(long long lim)
{
long long s=0;
long i;
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);
}