Submission #1313160

#TimeUsernameProblemLanguageResultExecution timeMemory
1313160miniobTopical (NOI23_topical)C++20
100 / 100
276 ms133492 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); long long n, k; cin >> n >> k; long long umiejetnosci[n + 3][k + 3]; long long zysk[n + 3][k + 3]; long long cur[k + 7]; vector<pair<long long, long long>> wymaganie_pos[k + 3]; long long gdzie_jestem[k + 7]; long long wilulepszy[n + 7]; for (long long i = 0; i < k; i++) { cur[i] = 0; gdzie_jestem[i] = 0; } for (long long i = 0; i < n; i++) { wilulepszy[i] = 0; } for (long long i = 0; i < n; i++) { for (long long j = 0; j < k; j++) { cin >> umiejetnosci[i][j]; wymaganie_pos[j].push_back({ umiejetnosci[i][j] , i }); } } for (long long i = 0; i < k; i++) { sort(wymaganie_pos[i].begin(), wymaganie_pos[i].end()); } for (long long i = 0; i < n; i++) { for (long long j = 0; j < k; j++) { cin >> zysk[i][j]; } } long long odp = 0; vector<long long> wygram; while (true) { for (long long i = 0; i < k; i++) { while (gdzie_jestem[i] < n && wymaganie_pos[i][gdzie_jestem[i]].first <= cur[i]) { wilulepszy[wymaganie_pos[i][gdzie_jestem[i]].second]++; if (wilulepszy[wymaganie_pos[i][gdzie_jestem[i]].second] == k) { odp++; wygram.push_back(wymaganie_pos[i][gdzie_jestem[i]].second); } gdzie_jestem[i]++; } } if (wygram.size() == 0) { cout << odp << endl; return 0; } else { for (auto x : wygram) { for (long long i = 0; i < k; i++) { cur[i] += zysk[x][i]; } } wygram.clear(); } } 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...