#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e6 + 5, mod = 1e9 + 7;
int n, k, ans;
vector<vector<int>> u,r;
ll p[N];
struct cmp {
bool operator()(int x, int y) const {
if(r[x][1] != r[y][1]) return r[x][1] < r[y][1];
return x < y;
}
};
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> k;
u.resize(n+1, vector<int> (k+1)), r.resize(n+1, vector<int> (k+1));
for(int i=1;i<=n;++i) {
for(int j=1;j<=k;++j) cin >> r[i][j];
}
for(int i=1;i<=n;++i) {
for(int j=1;j<=k;++j) cin >> u[i][j];
}
set <int, cmp> s;
for(int i=1;i<=n;++i) s.insert(i);
while(!s.empty()) {
int del = 0;
for(int id : s) {
if(p[1] < r[id][1]) break;
bool ok = 1;
for(int i=1;i<=k;++i) if(r[id][i] > p[i]) { ok = 0; break; }
if(!ok) continue;
for(int i=1;i<=k;++i) p[i] += u[id][i];
ans++;
del = id;
break;
}
if(del == 0) break;
s.erase(del);
}
cout << ans;
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... |