Pagini recente » Cod sursa (job #162526) | Cod sursa (job #1572143) | Cod sursa (job #1166019) | Cod sursa (job #719437) | Cod sursa (job #68539)
Cod sursa(job #68539)
#include <stdio.h>
#define Nmax 100001
int N,K,a[Nmax],i;
long long S,Gmax,p,rez;
int incearca(long long nr)
{
int i;
long long s2=0;
for (i=1;(i<=N)&&(s2<nr*K);++i)
if (a[i]<nr) s2+=a[i];
else
{
s2+=(N-i+1)*nr;
break;
}
if (s2>=nr*K) return 1;
else return 0;
}
int main()
{
freopen("grupuri.in","r",stdin);
scanf("%d %d",&K,&N);
for (i=1;i<=N;++i)
{
scanf("%d",&a[i]);
S+=a[i];
}
fclose(stdin);
Gmax=S/K;
p=1;
while (p<=Gmax)
p = p << 1;
p = p >> 1;
while (p>=1)
{
if (incearca(rez+p)) rez+=p;
p = p >> 1;
}
freopen("grupuri.out","w",stdout);
printf("%lld",rez);
fclose(stdout);
return 0;
}