Pagini recente » Cod sursa (job #1074527) | Borderou de evaluare (job #2148045) | Cod sursa (job #2713884) | Cod sursa (job #1553285) | Cod sursa (job #1789857)
#include <iostream>
#include <fstream>
#define NMAX 100002
using namespace std;
ifstream in("grupuri.in");
ofstream out("grupuri.out");
long long a[NMAX],n,k,st,dr,mij;
long long sum;
bool verf(long long x)
{
long long v = 0,s=0;
for(int i=0;i<n;i++)
{
v = min(a[i],x);
s+=v;
}
if(s>=x*k)
{
return true;
}
else
{
return false;
}
}
int main()
{
in >> k >> n;
for(int i=0;i<n;i++)
{
in >> a[i];
sum+=a[i];
}
st = 1,dr = sum/k;
while(st<=dr)
{
mij = (st+dr)/2;
// cout << mij << " ";
if(verf(mij))
{
st = mij+1;
}
else
{
dr = mij-1;
}
}
out << mij;
return 0;
}