Submission #1319336

#TimeUsernameProblemLanguageResultExecution timeMemory
1319336nathlol2Topical (NOI23_topical)C++20
61 / 100
1097 ms63880 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int n, m, ans; signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m; int r[n + 1][m + 1], u[n + 1][m + 1], a[n + 1], v[n + 1]; memset(a, 0, sizeof a); memset(v, 0, sizeof v); for(int i = 1;i<=n;i++) for(int j = 1;j<=m;j++) cin >> r[i][j]; for(int i = 1;i<=n;i++) for(int j = 1;j<=m;j++) cin >> u[i][j]; if(n <= 1000 || m != 1){ while(1){ bool f = 0; for(int i = 1;i<=n;i++){ if(v[i]) continue; bool ff = 1; for(int j = 1;j<=m;j++){ if(a[j] < r[i][j]){ ff = 0; } } if(ff){ f = 1; for(int j = 1;j<=m;j++){ a[j] += u[i][j]; } v[i] = 1; break; } } if(!f) break; ++ans; } }else{ vector<pair<int, int>> v; for(int i = 1;i<=n;i++){ v.push_back({r[i][1], u[i][1]}); } sort(v.begin(), v.end()); int cur = 0, l = -1; while(1){ auto it = upper_bound(v.begin(), v.end(), make_pair(cur, LLONG_MAX)) - v.begin() - 1; if(it <= l) break; for(int i = l + 1;i<=it;i++) cur += v[i].second, ++ans; l = it; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...