Submission #1269596

#TimeUsernameProblemLanguageResultExecution timeMemory
1269596tungtungsahurTopical (NOI23_topical)C++17
100 / 100
342 ms126176 KiB
#include<bits/stdc++.h>
#define ll long long
#define dn cout << "\n";
#define name "task"
#define pb push_back
#define F first
#define S second
using namespace std;
const int M = 1e6 + 2;
const int N = 1e5 + 2;

int n, k;
void solve(){
    cin >> n >> k;
    vector<ll> cur(k + 1, 0), cnt(n + 1, 0), pos(k + 1, -1);
    vector<vector<int>> a(n + 2, vector<int> (k + 2));
    vector<vector<int>> b(n + 2, vector<int> (k + 2));
    vector<vector<pair<int,int>>> vec(k + 2);
    for(int i = 1; i <= n; i ++){
        for(int j = 1; j <= k; j ++){
            int x; cin >> x;
            a[i][j] = x;
        }
    }
    for(int i = 1; i <= n; i ++){
        for(int j = 1; j <= k; j ++){
            int x; cin >> x;
            b[i][j] = x;
        }
    }
    for(int j = 1; j <= k; j ++){
        for(int i = 1; i <= n; i ++){
            vec[j].pb({a[i][j], i});
        }
        sort(vec[j].begin(), vec[j].end());
    }
    int res = 0;
    while(1){
        bool check = 0;
        for(int j = 1; j <= k; j ++){
            while(pos[j] + 1 < n && vec[j][pos[j] + 1].F <= cur[j - 1]){
                cnt[vec[j][pos[j] + 1].S] ++;
                if(cnt[vec[j][pos[j] + 1].S] == k){
                    res ++; check = 1;
                    for(int p = 0; p < cur.size(); p ++) cur[p] += b[vec[j][pos[j] + 1].S][p + 1];
                }
                pos[j] ++;
            }
        }
        if(check == 0) break;
    }
    cout << res;

}
main(){
    cin.tie(0) -> ios::sync_with_stdio(0);
    /*
    if(fopen(name".inp","r")){
        freopen(name".inp","r",stdin);
        freopen(name".out","w",stdout);
    }
    */
    solve();
}

Compilation message (stderr)

Main.cpp:55:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   55 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...