#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>
#define pb push_back
#define F first
#define S second
#define ins insert
#define rep(i, a, b) for(int i = a; i <= b; i++)
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define int long long
int32_t besthub(int32_t cnt, int32_t mx, int32_t X[], int b){
vector<int> x;
rep(i, 0, cnt - 1) x.pb(X[i]);
int l = 1, r = mx - 1;
int best = 0;
while(l <= r){
int mid = (l + r) / 2;
int cur1cost = 0;
int cur1cnt = 0;
sort(x.begin(), x.end(), [mid](int a, int b){
return abs(a - mid) < abs(b - mid);
});
rep(i, 0, cnt - 1){
if(cur1cost + abs(x[i] - mid) <= b){
cur1cost += abs(x[i] - mid);
cur1cnt++;
}
}
int cur2cost = 0;
int cur2cnt = 0;
sort(x.begin(), x.end(), [mid](int a, int b){
return abs(a - (mid + 1)) < abs(b - (mid + 1));
});
rep(i, 0, cnt - 1){
if(cur2cost + abs(x[i] - (mid + 1)) <= b){
cur2cost += abs(x[i] - (mid + 1));
cur2cnt++;
}
}
best = max(best, max(cur1cnt, cur2cnt));
if(cur1cnt <= cur2cnt){
l = mid + 1;
}else{
best = cur1cnt;
r = mid - 1;
}
}
return best;
}
| # | 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... |