#include<bits/stdc++.h>
using namespace std;
const long long MAXV = 1e7;
long long all[MAXV],hshed[MAXV];
long long used[MAXV];
long long cur[MAXV];
vector<pair<long long,long long>> arr[MAXV];
long long ind[MAXV];
int main(){
long long n,k;
cin >> n >> k;
for(long long i = 0; i<n; i++){
for(long long j = 0; j<k; j++){
cin >> all[i*k+j];
arr[j].push_back({all[i*k+j],i});
}
}
for(long long j = 0; j<k; j++){
sort(arr[j].begin(),arr[j].end());
}
for(long long i = 0; i<n; i++){
for (long long j = 0; j<k; j++){
cin >> hshed[i*k+j];
}
}
long long ans = 0;
vector<long long> nex;
bool flag = 1;
while(flag){
flag = 0;
for(long long j = 0; j<k; j++){
while(ind[j] < n && arr[j][ind[j]].first <= cur[j]){
used[arr[j][ind[j]].second]++;
if(used[arr[j][ind[j]].second] == k){
for(long long jj = 0; jj < k; jj++){
cur[jj] += hshed[arr[j][ind[j]].second*k+jj];
}
ans++;
flag = 1;
}
ind[j]++;
}
}
}
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... |