Pagini recente » Cod sursa (job #1104625) | Cod sursa (job #741113) | Cod sursa (job #1675729) | Cod sursa (job #2679262) | Cod sursa (job #80050)
Cod sursa(job #80050)
#include<stdio.h>
FILE*f=fopen("grupuri.in","r");
FILE*g=fopen("grupuri.out","w");
long long a[100019],n,k,x,s;
void read()
{
int i;
fscanf(f,"%lld %lld",&k,&n);
for(i=1;i<=n;++i) fscanf(f,"%lld",&a[i]),s+=a[i];
}
long long se_poate(long long x)
{
long s=0,i;
//matrice de x*k;
for(i=1;i<=n;++i)
{
if(a[i]<=x) s+=a[i];
else s+=x;
}
if(s>=x*k) return 0;
else return 1;
}
long long binary_search()
{
long long m,i,j,ok,max=0;
i=1;
j=s/k;
while(i<=j)
{
m=(i+j)/2;
ok=se_poate(m);
if(ok==0)
{
if(m>max) max=m;
i=m+1;
}
else j=m-1;
}
return max;
}
int main()
{
read();
long long m;
m=binary_search();
fprintf(g,"%lld",m);
return 0;
}