Pagini recente » Cod sursa (job #1074165) | Cod sursa (job #2052623) | Cod sursa (job #288815) | Cod sursa (job #2804363) | Cod sursa (job #2790536)
#include <fstream>
using namespace std;
ifstream cin("grupuri.in");
ofstream cout("grupuri.out");
long long v[100005],k,n;
long long f(long long a)
{
long long cnt=0;
for(long long i=1; i<=n; i++)
{
if(v[i]<=a)
cnt+=v[i];
else
cnt+=a;
}
if(cnt>=k*a)
return 1;
else return 0;
}
int main()
{
long long sum=0;
cin>>k>>n;
for(long long i=1; i<=n; i++)
{
cin>>v[i];
sum+=v[i];
}
long long i1=1,i2=sum/k,mij,rez=-1;
while(i1<=i2)
{
mij=(i1+i2)/2;
if(f(mij)==1)
{
rez=mij;
i1=mij+1;
}
else
i2=mij-1;
}
cout<<rez;
return 0;
}