Submission #1171099

#TimeUsernameProblemLanguageResultExecution timeMemory
1171099KhoaDuyTopical (NOI23_topical)C++17
100 / 100
212 ms74720 KiB
#include<bits/stdc++.h> using namespace std; #define endl '\n' signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n,k; cin >> n >> k; int r[n][k],u[n][k]; long long sum[k]={0}; vector<vector<pair<int,int>>> order(k); for(int i=0;i<n;i++){ for(int j=0;j<k;j++){ cin >> r[i][j]; order[j].push_back({r[i][j],i}); } } for(int i=0;i<n;i++){ for(int j=0;j<k;j++){ cin >> u[i][j]; } } for(int j=0;j<k;j++){ sort(order[j].begin(),order[j].end()); } vector<int> candi; int ptr[k],cnt[n]={0}; memset(ptr,-1,sizeof(ptr)); int ans=0; while(true){ for(int i=0;i<k;i++){ while(ptr[i]+1<order[i].size()&&order[i][ptr[i]+1].first<=sum[i]){ ptr[i]++; cnt[order[i][ptr[i]].second]++; if(cnt[order[i][ptr[i]].second]==k){ candi.push_back(order[i][ptr[i]].second); } } } if(candi.empty()){ break; } ans++; for(int j=0;j<k;j++){ sum[j]+=u[candi.back()][j]; } candi.pop_back(); } 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...