为什么会全红?求大佬帮助
查看原帖
为什么会全红?求大佬帮助
1030248
Everyday_yx楼主2024/8/16 16:59
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n, S;
    cin >> n >> S;
    vector<int> p(n), c(n);
    for (int i = 0; i < n; ++i) {
        cin >> p[i] >> c[i];
    }
    int res = 0;
    bool flag = true;
    while (flag) {
        int temp = 0;
        for (int j = 0; j < n; ++j) {
            if (c[j] > 0) {
                temp += p[j];
            }
        }
        if (temp > S) {
            res += S;
            for (int j = 0; j < n; ++j) {
                if (c[j] > 0) {
                    c[j]--;
                }
            }
        } else {
            for (int k = 0; k < n; ++k) {
                if (c[k] > 0) {
                    res += c[k] * p[k];
                    c[k] = 0;
                }
            }
        }
        flag = false;
        for (int i = 0; i < n; ++i) {
            if (c[i] > 0) {
                flag = true;
                break;
            }
        }
    }
    cout << res << endl;
    return 0;
}
2024/8/16 16:59
加载中...