Submission #1286447

#TimeUsernameProblemLanguageResultExecution timeMemory
1286447lucianTopical (NOI23_topical)C++17
61 / 100
1093 ms114068 KiB
#include <bits/stdc++.h> using namespace std; int n, k; vector<vector<int>> r, u; bool cmp(int a, int b){ long long sa = 0, sb = 0; for(int j = 0; j < k; j++){ sa += r[a][j]; sb += r[b][j]; } return sa < sb; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> k; r.assign(n, vector<int>(k)); u.assign(n, vector<int>(k)); vector<int> p(k, 0); vector<bool> done(n, false); vector<int> id(n); for(int i = 0; i < n; i++){ for(int j = 0; j < k; j++){ cin >> r[i][j]; } } for(int i = 0; i < n; i++){ for(int j = 0; j < k; j++){ cin >> u[i][j]; } } for(int i = 0; i < n; i++){ id[i] = i; } sort(id.begin(), id.end(), cmp); int completed = 0; bool progress = true; while(progress){ progress = false; for(int ii = 0; ii < n; ii++){ int i = id[ii]; if(done[i]) continue; bool can = true; for(int j = 0; j < k; j++){ if(p[j] < r[i][j]){ can = false; break; } } if(can){ done[i] = true; completed++; progress = true; for(int j = 0; j < k; j++){ p[j] += u[i][j]; if(p[j] > 1000000000){ p[j] = 1000000000; } } } } } cout << completed; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...