제출 #1280651

#제출 시각아이디문제언어결과실행 시간메모리
1280651ducksaysquackTopical (NOI23_topical)C++20
100 / 100
701 ms125620 KiB
#include <bits/stdc++.h> #define int long long #define f first #define s second using namespace std; signed main() { int n, k; cin >> n >> k; vector<vector<pair<int,int>>> v(k,vector<pair<int,int>>(n)); vector<vector<int>> w(k,vector<int>(n)); for(int i=0;i<n;i++) for(int j=0;j<k;j++) {cin >> v[j][i].f; v[j][i].s = i;} for(int i=0;i<n;i++) for(int j=0;j<k;j++) cin >> w[j][i]; for(int i=0;i<k;i++) sort(begin(v[i]),end(v[i])); queue<int> q; vector<int> c(n), d(k), e(k); int ans = 0; while(true) { for(int i=0;i<k;i++) {while(e[i] < n && d[i] >= v[i][e[i]].f) {c[v[i][e[i]].s]++, e[i]++; if(c[v[i][e[i]-1].s] == k) q.push(v[i][e[i]-1].s);}} if(q.empty()) break; else while(!q.empty()) {for(int i=0;i<k;i++) d[i] += w[i][q.front()]; ans++; q.pop();} } cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...