Pagini recente » Cod sursa (job #1315622) | Cod sursa (job #2906536) | Cod sursa (job #1943269) | Cod sursa (job #2500014) | Cod sursa (job #487275)
Cod sursa(job #487275)
#include <fstream>
using namespace std;
const char InFile[]="grupuri.in";
const char OutFile[]="grupuri.out";
const int MaxN=100010;
ifstream fin(InFile);
ofstream fout(OutFile);
long long K,N,A[MaxN],p,u,m,sol;
bool is_good(long long nrg)
{
long long s=0;
for(register int i=0;i<N;++i)
{
s+=min(nrg,A[i]);
}
if(s>=nrg*K)
{
return true;
}
return false;
}
int main()
{
fin>>K>>N;
for(register int i=0;i<N;++i)
{
fin>>A[i];
u+=A[i];
}
fin.close();
u/=K;
while(p<=u)
{
m=p+(u-p)/2;
if(is_good(m))
{
p=m+1;
sol=m;
}
else
{
u=m-1;
}
}
fout<<sol;
fout.close();
return 0;
}