#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int nx = 1e6+5;
ll n,k,res,cnt[nx],p[nx];
priority_queue<pair<ll,int>,vector<pair<ll,int>>,greater<pair<ll,int>>> req[nx];
queue<int> q;
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
cin>>n>>k;
vector<vector<int>> r(n+1,vector<int>(k+1)), u(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], req[j].push({r[i][j],i});
q.push(0);
while(!q.empty())
{
q.pop();
for(int i = 1; i <= k; i++)
{
while(!req[i].empty())
{
auto [re, mod] = req[i].top();
if(re > p[i]) break;
req[i].pop();
cnt[mod]++;
if(cnt[mod]==k) q.push(mod),res++;
}
}
if(q.empty()) break;
while(!q.empty())
{
int mod = q.front();
q.pop();
if(mod == 0) continue;
for(int i = 1; i <= k; i++) p[i] += u[mod][i];
}
q.push(0);
}
cout<<res;
}
| # | 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... |