解题思路
每次最慢的一件衣服使用烘干机
设一个 a n s ans ans为时间、
- 最慢的一件衣服 > a n s ∗ A > ans * A >ans∗A,对这件衣服使用烘干机
- 最慢的一件衣服 ≤ a n s ∗ A \leq ans * A ≤ans∗A, a n s ans ans就已经是答案了
Code
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
priority_queue<int> f;//大根堆
int n, A, B, a[501000], ans, t;
int main() {
scanf("%d%d%d", &n, &A, &B);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
f.push(a[i]);
}
while (f.top() > ans * A) {
ans++;
t = f.top();
f.pop();
f.push(t - B);
}
printf("%d", ans);
}