@[Otion](/user/843596) right取值好像不太对
by Otion @ 2023-02-28 14:43:45
捞
by Otion @ 2023-02-28 14:47:05
@[Otion](/user/843596)
这个还有一个点没过
```
#include <iostream>
using namespace std;
int total_item;
int dry;
int sup_dry;
const int N = 500500;
int wet[N];
bool check(int time) {
long long dry_already = time * dry;
int super_time = time;
for (int i = 1; i <= total_item; i++) {
if (wet[i] - dry_already > 0) {
if ((wet[i] - dry_already) % sup_dry != 0) {
super_time -= (wet[i] - dry_already) / sup_dry+1;
}
else {
super_time -= (wet[i] - dry_already) / sup_dry;
}
}
else {
continue;
}
}
if (super_time < 0) {
return false;
}
else {
return true;
}
}
int most_wet;
int ans;
int main() {
cin >> total_item >> dry >> sup_dry;
for (int i = 1; i <= total_item; i++) {
cin >> wet[i];
most_wet = max(most_wet, wet[i]);
}
double left = 0;
double right = most_wet / dry + dry;
while (left <= right) {
double mid = (left + right) / 2;
if (check(mid)) {
ans = mid;
right = mid-1;
}
else {
left = mid + 1;
}
}
cout << ans << endl;
return 0;
}
```
by Otion @ 2023-02-28 14:54:55