Pagini recente » Cod sursa (job #2914984) | Cod sursa (job #205041) | Cod sursa (job #1706787) | Cod sursa (job #644677) | Cod sursa (job #869727)
Cod sursa(job #869727)
#include<stdio.h>
#include<algorithm>
using namespace std;
int v[101010],N,K;
long long S;
int check(int x)
{
long long sum=0;
for(int i=1;i<=N;++i)
if(v[i]<=x)
sum+=v[i];
else sum+=x;
if(sum>=x*K)
return 1;
return 0;
}
long long caut()
{
long long st=1,dr=S/K;
long long ret=0;
while(st<=dr)
{
int mij=(st+dr)/2;
// printf("%d %d %d\n",st,dr,mij);
if(check(mij))
{
ret=mij;
st=mij+1;
}
else dr=mij-1;
}
return ret;
}
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
scanf("%d%d",&K,&N);
for(int i=1;i<=N;++i)
{
scanf("%d",&v[i]);
S+=v[i];
}
printf("%lld\n",caut());
return 0;
}