#include "ricehub.h"
#include "bits/stdc++.h"
using namespace std;
#define int long long
int32_t besthub(int32_t n, int32_t x, int32_t a[], int b) {
int lo = 0, hi = x;
while (lo + 50 < hi) {
int mid1 = hi - (lo + lo + hi) / 3, mid2 = (lo + hi + hi) / 3;
sort(a, a + n, [&](int i, int j) { return abs(i - mid1) < abs(j - mid1); });
int cost1 = 0, cnt1 = 0;
for (int i = 0; i < n; i++) {
if (cost1 + abs(a[i] - mid1) <= b) {
cost1 += abs(a[i] - mid1);
cnt1++;
}
}
sort(a, a + n, [&](int i, int j) { return abs(i - mid2) < abs(j - mid2); });
int cost2 = 0, cnt2 = 0;
for (int i = 0; i < n; i++) {
if (cost2 + abs(a[i] - mid2) <= b) {
cost2 += abs(a[i] - mid2);
cnt2++;
}
}
if (cnt1 <= cnt2) {
lo = mid1;
} else {
hi = mid2;
}
}
int ans = 0;
for (int m = lo; m <= hi; m++) {
sort(a, a + n, [&](int i, int j) { return abs(i - m) < abs(j - m); });
int cost = 0, cnt = 0;
for (int i = 0; i < n; i++) {
if (cost + abs(a[i] - m) <= b) {
cost += abs(a[i] - m);
cnt++;
}
}
ans = max(ans, cnt);
}
return ans;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |