Submission #1199715

#TimeUsernameProblemLanguageResultExecution timeMemory
1199715ofozTopical (NOI23_topical)C++20
12 / 100
566 ms8312 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void nOne(int n, int k) {
    vector<vector<int>> grid(n, vector<int>(k));
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < k; ++j)
            cin >> grid[i][j];

    vector<int> ben(k);
    for (int i = 0; i < k; ++i)
        cin >> ben[i];

    sort(grid.begin(), grid.end());

    int sum_first_row = 0;
    for (int j = 0; j < k; ++j)
        sum_first_row += grid[0][j];

    if (sum_first_row == 0)
        cout << 1 << endl;
    else
        cout << 0 << endl;
}

void kOne(int n, int k) {
    vector<vector<int>> grid(n, vector<int>(k));
    vector<vector<int>> ben(n, vector<int>(k));

    for (int i = 0; i < n; ++i)
        for (int j = 0; j < k; ++j)
            cin >> grid[i][j];

    for (int i = 0; i < n; ++i)
        for (int j = 0; j < k; ++j)
            cin >> ben[i][j];

    vector<pair<int, int>> pairs;
    for (int i = 0; i < n; ++i)
        pairs.emplace_back(grid[i][0], ben[i][0]);

    sort(pairs.rbegin(), pairs.rend());

    int cur = 0, res = 0;
    while (!pairs.empty() && cur >= pairs.back().first) {
        cur += pairs.back().second;
        pairs.pop_back();
        res++;
    }

    cout << res << endl;
}

void solve() {
    int n, k;
    cin >> n >> k;
    if (n == 1)
        nOne(n, k);
    else if (k == 1)
        kOne(n, k);
}

int main() {
    solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...