Submission #1317458

#TimeUsernameProblemLanguageResultExecution timeMemory
1317458vedchoudharyTopical (NOI23_topical)C++20
100 / 100
582 ms134344 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3") using namespace std; using ll = long long; #define int ll signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n,k; cin >> n >> k; vector<vector<int>> r(n,vector<int>(k)); vector<vector<int>> u(n,vector<int>(k)); 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]; vector<int> rem(n,k); vector<int> p(k,0); vector<priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>> pq(k); for(int i = 0; i < n; i++) { for(int j = 0; j < k; j++) { pq[j].push({r[i][j],i}); } } int ans = 0; bool cont = true; while(cont) { cont = false; for(int i = 0; i < k; i++) { while(!pq[i].empty()&&pq[i].top().first<=p[i]) { rem[pq[i].top().second]--; // cout << "decresed " << pq[i].top().second << " rem = " << rem[pq[i].top().second] << "\n"; if(rem[pq[i].top().second]==0) { cont = true; ans++; for(int j = 0; j < k; j++) p[j] += u[pq[i].top().second][j]; } pq[i].pop(); } } } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...