/**
* Author : Vu Khac Minh
**/
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn = 1e6 + 5;
const int mod = 1e9+7;
int n,k;
vector<int> a[maxn],b[maxn];
vector<pair<int,int>> s[maxn];
int r[maxn],cnt[maxn],power[maxn];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>k;
for(int i = 1;i<=n;i++)
{
a[i].resize(k+1);
b[i].resize(k+1);
}
for(int i = 1;i<=n;i++)
{
for(int j = 1;j<=k;j++)
{
cin>>a[i][j];
s[j].push_back({a[i][j],i});
}
}
for(int i = 1;i<=n;i++)
{
for(int j = 1;j<=k;j++)
cin>>b[i][j];
}
for(int i = 1;i<=k;i++)
sort(s[i].begin(),s[i].end());
int res = 0;
while(true)
{
bool stopped = false;
for(int j = 1;j<=k;j++)
{
while(r[j]<=n)
{
int x = s[j][r[j]].first;
int y = s[j][r[j]].second;
if(x<=power[j])
{
r[j]++;
cnt[y]++;
if(cnt[y] == k)
{
for(int i = 1;i<=k;i++)
power[i]+=b[y][i];
stopped = true;
res++;
}
}else break;
}
}
if(!stopped) break;
}
cout<<res;
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... |