#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int MAX = 1e6+5;
priority_queue<pair<ll,int>> pq[MAX]; ll p[MAX]; int topics[MAX]; // ok topics per modules
int main(){
cin.tie(nullptr)->ios_base::sync_with_stdio(false);
int n,k; cin >> n >> k;
vector<vector<ll>> gain(n+1, vector<ll>(k+1, 0));
for(int i=1;i<=n;i++)
for(int j=1;j<=k;j++){
ll r; cin >> r;
pq[j].push({-r, i});
}
for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) cin >> gain[i][j];
int ans = 0;
queue<int> q; q.push(0);
while(!q.empty()){
int m = q.front(); q.pop();
for(int j=1;j<=k;j++){
p[j] += gain[m][j];
while(!pq[j].empty()){
auto [r,mod] = pq[j].top();
if(p[j] >= -r){
pq[j].pop();
if(++topics[mod]==k){
ans++;
q.push(mod);
}
} else break;
}
}
}
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... |