今天是 L 公司发工资的一天。�n 名员工排成一排准备领工资编号为 1∼�1∼n第 �i 名员工有一个期望快乐值 ��a i 。老板非常扣在这 �n 名员工中只选择了 �m 名员工 �1�2⋯ ��b 1 b 2 ⋯b m 发 �k 元工资。员工们都非常具有同理心不仅自己获得工资时会增加快乐值当周围的员工获得工资时自己也会增加快乐值。具体地当与一名员工 A 距离为 �d 的员工获得了工资
#include
using namespace std;
int main() { int n, m; cin >> n >> m;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
vector<int> b(m);
for (int i = 0; i < m; i++) {
cin >> b[i];
}
sort(a.begin(), a.end());
sort(b.begin(), b.end());
int max_happiness = a[n-1];
int left = 0, right = m-1;
while (left <= right) {
int mid = left + (right - left) / 2;
int sum = 0;
for (int i = mid; i >= 0; i--) {
sum += b[i];
if (i > 0) {
sum -= 1;
}
}
if (sum >= max_happiness) {
right = mid - 1;
} else {
left = mid + 1;
}
}
cout << left << endl;
return 0;
原文地址: https://www.cveoy.top/t/topic/iBBx 著作权归作者所有。请勿转载和采集!