Pagini recente » Cod sursa (job #1004802) | Cod sursa (job #1025869) | Cod sursa (job #322599) | Cod sursa (job #1532525) | Cod sursa (job #1077752)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
const int MAX_N = 100005;
int N, K, a[MAX_N];
void read() {
f >> K >> N;
for (int i = 1; i <= N; i++)
f >> a[i];
}
bool isGood (int X) {
long long nr = 0, must = 1LL * X * K;
for (int i = 1; i <= N; i++)
nr += min (a[i], X);
if (nr >= must)
return 1;
return 0;
}
int solve (int lo, int hi) {
int ret;
while (lo <= hi) {
int mid = (lo + hi) / 2;
if (isGood (mid)) {
ret = mid;
lo = mid + 1;
} else {
hi = mid - 1;
}
}
return ret;
}
int main() {
read();
g << solve (1, 1000000);
return 0;
}