有点拗口啊……
- 将一分钟看做一轮。
- 由于每轮每件都会算上
a(自然风干的湿度)
,那么就单独提取a
进行独立计算;
那么重点在b(烘干机减少的湿度)
。- 每轮将湿度最大的拿来烘干机(减去
b
)。- 湿度最大的就是大根堆(优先队列)的堆顶元素。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e6;
int h[N];
int n, a, b;
int main() {
cin >> n >> a >> b;
for(int i = 1; i <= n; i ++)
scanf("%d", &h[i]);
priority_queue<int> q;
for(int i = 1; i <= n; i ++)
q.push(h[i]);
int t = 0;
while(q.top() - t * a > 0) {
t ++;
int x = q.top();
q.pop();
q.push(x - b);
}
cout << t;
return 0;
}