#include <bits/stdc++.h>
using namespace std;
int main() {
    //if n== 1: if r != 0 for all k, cout << 0, else 1 
    //if k == 1: 
    int n, k;
    cin>>n>>k;
    int ans = 0, know1 = 0, r, u;
    //if n = 1 
    if(n==1) {
        int check = 1;
        for (int i=0;i<k;++i) {
            cin >> r;
            if (r!=0){
                check = 0;
            }
        }
        for (int i = 0;i<k;++i) cin >> r;
        cout << check;
        exit(0);
    }
    //Input knowledge requirement
    vector<int> reqr;
    vector<vector<int>> require;
    for (int i = 0; i<n; ++i) {
        for (int t = 0; t< k; ++t) {
            cin >> r;
            reqr.push_back(r);
        }
        require.push_back(reqr);
        reqr.clear();
    }
    
    //Input knowledge gain
    vector<int> kgain;
    vector<vector<int>> gain;
    for (int i = 0; i<n; ++i) {
        for (int t = 0; t< k; ++t) {
            cin >> u;
            kgain.push_back(u);
        }
        gain.push_back(kgain);
        kgain.clear();
    }
    
    //if k = 1 
    if (k==1) {
        vector<pair<int,int>> val(n);
        for(int i = 0;i<n;++i) {
            val[i] = {require[i][0],gain[i][0]};
        }
        sort(val.begin(),val.end());
        for(auto &module : val) {
            if (module.first <= know1) {
                know1 += module.second;
                ++ans;
            } else {
                break;
            }
        }
        cout << ans;
        exit(0);
    }
    
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |