#include #include #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;

}

C++ 解决工厂订单交付问题:代码示例与优化

原文地址: https://www.cveoy.top/t/topic/qnQr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录