#include <bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
int32_t main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, k;
cin >> n >> k;
int r[n][k], u[n][k];
for(auto &aux : r) {
for(int &aux2 : aux) cin >> aux2;
}
for(auto &aux : u) {
for(int &aux2 : aux) cin >> aux2;
}
vector<int> st(k,0);
priority_queue<vector<int>,vector<vector<int>>,greater<vector<int>>> pq;
pq.push(st);
vector<bool> vst(n,false);
int ans=0;
while(!pq.empty()) {
auto at = pq.top();
pq.pop();
auto to=at;
for(int i=0; i<n; ++i) {
if(vst[i]) continue;
bool ok=true;
auto aux=at;
for(int j=0; j<k; ++j) {
if(at[j]<r[i][j]) {
ok=false;
break;
}
}
if(ok) {
vst[i]=true;
ans++;
for(int j=0; j<k; ++j) to[j]+=u[i][j];
}
}
if(to!=at) pq.push(to);
}
cout << ans << endl;
}
# | 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... |