Pagini recente » Cod sursa (job #1964849) | Cod sursa (job #332747) | Cod sursa (job #1264790) | Cod sursa (job #2220524) | Cod sursa (job #966113)
Cod sursa(job #966113)
#include <iostream>
#include <fstream>
using namespace std;
int n, k, result;
long long a[100010];
long long sum;
inline void Read()
{
ifstream f ("grupuri.in");
f>>k>>n;
int i;
for (i=1; i<=n; i++)
{
f>>a[i];
sum += a[i];
}
f.close();
}
inline bool Possible(long long nrgrupuri)
{
long long S, nranimale = 0LL;
S = nrgrupuri * k;
for (int i=1; i<=n; i++)
nranimale += min(a[i], nrgrupuri);
if (nranimale >= S)
return true;
return false;
}
inline void Solve()
{
int st;
long long mij, dr;
st = 1;
dr = sum / k;
while (st <= dr)
{
mij = (st + dr) >> 1;
if (Possible(mij))
{
result = mij;
st = mij + 1;
}
else
dr = mij - 1;
}
}
inline void Write()
{
ofstream g("grupuri.out");
g<<result<<"\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}