Pagini recente » Cod sursa (job #1312798) | Cod sursa (job #1638870) | Cod sursa (job #424878) | Cod sursa (job #774352) | Cod sursa (job #2765074)
#include <fstream>
using namespace std;
int k, n;
int a[100001];
long long S = 0;
void read() {
int i;
ifstream f("grupuri.in");
f >> k >> n;
for (i = 1; i <= n; i++)
f >> a[i];
f.close();
}
bool ok(long long x) {
int i;
long long aux = 0;
for (i = 1; i <= n; i++)
aux += min(1LL * a[i], x);
if (aux >= x * k)
return 1;
return 0;
}
long long rez;
void solve() {
int i;
long long st, dr, mij;
for (i = 1; i <= n; i++)
S += a[i];
st = 1, dr = S / k;
while (st <= dr) {
mij = (st + dr) / 2;
if (ok(mij))
st = mij + 1;
else dr = mij - 1;
}
rez = dr;
}
void output() {
ofstream g("grupuri.out");
g << rez;
g.close();
}
int main() {
read();
solve();
output();
return 0;
}