Pagini recente » Cod sursa (job #2064108) | Cod sursa (job #197549) | Cod sursa (job #1531537) | Cod sursa (job #1616140) | Cod sursa (job #290858)
Cod sursa(job #290858)
#include<stdio.h>
long long n,k;
long long s;
long long v[100010];
void read()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
scanf("%lld%lld",&k,&n);
for(long i=1;i<=n;i++)
{
scanf("%lld",&v[i]);
s+=v[i];
}
}
int exista(long long m)
{
long long i;
long long suma=0;
for(i=1;i<=n;i++)
{
if(v[i]>=m)
break;
suma=suma+v[i];
}
suma=suma+(n-i+1)*m;
return suma>=m*k;
}
void cautare()
{
long long st=1,dr=s/k,m;
while(st!=dr)
{
m=(st+dr)/2;
if(exista(m))
st=m+1;
else
dr=m;
}
if(exista(st+1))
printf("%lld",st+1);
else
printf("%lld",st);
}
int main()
{
read();
cautare();
return 0;
}