C++ 解决工厂订单交付问题:代码示例与优化
#include
using namespace std;
bool canCompleteOrders(int n, int k, vector<pair<int, int>>& orders) { sort(orders.begin(), orders.end());
long long inventory = 0;
for (int i = 0; i < n; i++) {
int day = orders[i].first;
int quantity = orders[i].second;
// 检查库存是否足够完成订单
if (inventory + k < quantity) {
return false;
}
// 更新库存,确保在订单截止日期前能够生产足够的货物
inventory = max(inventory, (long long)day) + quantity;
}
return true;
}
int main() { int T; cin >> T;
while (T--) {
int n, k;
cin >> n >> k;
vector<pair<int, int>> orders(n);
for (int i = 0; i < n; i++) {
cin >> orders[i].first >> orders[i].second;
}
if (canCompleteOrders(n, k, orders)) {
cout << 'Yes' << endl;
} else {
cout << 'No' << endl;
}
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/qnQr 著作权归作者所有。请勿转载和采集!