33分暴毙大佬求助
查看原帖
33分暴毙大佬求助
1056390
yjmnb666楼主2023/10/23 19:31
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 1;
long long n, a, b, w[N];

bool yjm(int a, int b) {
	return a > b;
}

int main() {
	cin >> n >> a >> b;
	for (int i = 1; i <= n; i++) {
		cin >> w[i];
	}
	sort(w + 1, w + n + 1, yjm);
	int sum = 0, p = 1;
	long long l = 0, r = n + 1;
	while (w[p] > 0) {

		while (l + 1 != r) {
			long long mid = (l + r) / 2;
			if (w[mid] > a + b) {
				l = mid;
			} else {
				r = mid;
			}
		}
		w[p] = w[p] - a - b;
		for (int i = 2; i <= l; i++) {
			w[i] -= a;
		}
		if (w[p] <= 0)
			p++;

		r = l, l = p;
		sum++;
		if (w[r] <= 0)
			break;
	}
	cout << sum;
	return 0;
}
2023/10/23 19:31
加载中...