제출 #1317851

#제출 시각아이디문제언어결과실행 시간메모리
1317851channkTopical (NOI23_topical)C++20
100 / 100
450 ms107444 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int MAX = 1e6+5; priority_queue<pair<ll,int>> pq[MAX]; ll p[MAX]; int topics[MAX]; // ok topics per modules int main(){ cin.tie(nullptr)->ios_base::sync_with_stdio(false); int n,k; cin >> n >> k; vector<vector<ll>> gain(n+1, vector<ll>(k+1, 0)); for(int i=1;i<=n;i++) for(int j=1;j<=k;j++){ ll r; cin >> r; pq[j].push({-r, i}); } for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) cin >> gain[i][j]; int ans = 0; queue<int> q; q.push(0); while(!q.empty()){ int m = q.front(); q.pop(); for(int j=1;j<=k;j++){ p[j] += gain[m][j]; while(!pq[j].empty()){ auto [r,mod] = pq[j].top(); if(p[j] >= -r){ pq[j].pop(); if(++topics[mod]==k){ ans++; q.push(mod); } } else break; } } } 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...