Submission #1318707

#TimeUsernameProblemLanguageResultExecution timeMemory
1318707nagorn_phTopical (NOI23_topical)C++20
40 / 100
1088 ms31728 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

#define ordered_set <int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>
#define ordered_multiset <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update>

#define int long long
#define double long double
#define pii pair <int, int>
#define tiii tuple <int, int, int>
#define tiiii tuple <int, int, int, int>
#define emb emplace_back
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define iShowSpeed cin.tie(NULL)->sync_with_stdio(false)
#define matrix vector <vector <int>>
#define mat(n, m) vector <vector <int>> (n, vector <int> (m));

const int mod = 1e9 + 7;
const int inf = 1e18;
const matrix II = {{1, 0}, {0, 1}};

int32_t main(){
    iShowSpeed;
    int n, k; cin >> n >> k;
    int u[n + 1][k + 1], r[n + 1][k + 1];
    memset(u, 0, sizeof u);
    memset(r, 0, sizeof r);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= k; j++) {
            cin >> u[i][j];
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= k; j++) {
            cin >> r[i][j];
        }
    }
    int cur = 0;
    int p[n + 1] = {0};
    bool visited[n + 1] = {0};
    while (1) {
        bool yes = false;
        for (int i = 1; i <= n; i++) {
            if (visited[i]) continue;
            bool ok = true;
            for (int j = 1; j <= k; j++) {
                if (p[j] < u[i][j]) {
                    ok = false;
                    break;
                }
            }
            if (!ok) continue;
            for (int j = 1; j <= k; j++) {
                p[j] += r[i][j];
            }
            yes = true;
            visited[i] = true;
        }
        if (!yes) break;
    }
    cout << count(visited + 1, visited + 1 + n, true);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...