#include<bits/stdc++.h>
#define int long long
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
int n,m,c[100005],val[100005],ans;
queue<int>q;
signed main(void){
exoworldgd;
cin>>n>>m;
vector<vector<int>>a(n,vector<int>(m)),b(n,vector<int>(m));
vector<priority_queue<array<int,2>,vector<array<int,2>>,greater<>>>pq(m);
for(auto&i:a)for(auto&j:i)cin>>j;
for(auto&i:b)for(auto&j:i)cin>>j;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)a[i][j]?pq[j].push({a[i][j],i}),0:c[i]++;
if(c[i]==m)q.push(i);
}
while(q.size()){
int u=q.front();q.pop(),ans++;
for(int i=0,v;i<m;i++){
val[i]+=b[u][i];
while(pq[i].size()&&pq[i].top()[0]<=val[i]){
v=pq[i].top()[1],pq[i].pop(),c[v]++;
if(c[v]==m)q.push(v);
}
}
}
cout<<ans;
}
| # | 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... |