Pagini recente » Cod sursa (job #907210) | Cod sursa (job #1146198) | Cod sursa (job #1805351) | Cod sursa (job #426157) | Cod sursa (job #1081348)
#include <fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
long long k,n,a[100005],i;
int validare(long long x)
{
long long suma = 0;
for(int i = 1;i <= n; i++)
if(a[i] > x)
suma = suma + x;
else
suma = suma + a[i];
if(suma >= k * x)
return 1;
else
return 0;
}
long long cautare_binara(long long st, long long dr)
{
long long m;
while(st <= dr)
{
m = (st + dr) / 2;
if(validare(m) == 1 && validare(m + 1) == 0)
return m;
if(validare(m) == 0)
dr = m - 1;
else
st = m + 1;
}
}
int main()
{
f >> k >> n;
for(i = 1;i <= n; i++)
f >> a[i];
g << cautare_binara(1,(1<<30));
f.close();
g.close();
return 0;
}