| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1169553 | nathan4690 | Topical (NOI23_topical) | C++20 | 353 ms | 146736 KiB | 
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define f1(i,n) for(int i=1;i<=n;i++)
#define __file_name ""
using namespace std;
const ll maxn=1e6+5, inf=1e18;
int n, k, ptr[maxn], rem[maxn];
ll val[maxn];
int ans;
vector<vector<int>> r, u;
vector<pair<int,int>> allc[maxn];
queue<int> qu;
void upd(){
    f1(i,k){
        while(ptr[i] < allc[i].size()){
            if(val[i] >= allc[i][ptr[i]].first){
                int idx = allc[i][ptr[i]].second;
                rem[idx]--;
                if(rem[idx] == 0) qu.push(idx);
                ptr[i]++;
            }else break;
        }
    }
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    if(fopen(__file_name ".inp", "r")){
        freopen(__file_name ".inp", "r", stdin);
        freopen(__file_name ".out", "w", stdout);
    }
    // code here
    cin >> n >> k;
    r.resize(n+1, vector<int>(k+1));
    u.resize(n+1, vector<int>(k+1));
    f1(i, n) f1(j, k) {
        cin >> r[i][j];
        allc[j].push_back({r[i][j], i});
    }
    f1(i,n) f1(j,k) cin >> u[i][j];
    f1(i,k) sort(allc[i].begin(), allc[i].end());
    f1(i,n) rem[i] = k;
    upd();
    while(!qu.empty()){
        int idx = qu.front();
        qu.pop();
        ans++;
        f1(i,k) val[i] += u[idx][i];
        upd();
    }
    cout << ans;
    return 0;
}
Compilation message (stderr)
| # | 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... | ||||
