제출 #1318715

#제출 시각아이디문제언어결과실행 시간메모리
1318715nagorn_phTopical (NOI23_topical)C++20
40 / 100
1106 ms279392 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define ordered_set <int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> #define ordered_multiset <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update> #define int long long #define double long double #define pii pair <int, int> #define tiii tuple <int, int, int> #define tiiii tuple <int, int, int, int> #define emb emplace_back #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define iShowSpeed cin.tie(NULL)->sync_with_stdio(false) #define matrix vector <vector <int>> #define mat(n, m) vector <vector <int>> (n, vector <int> (m)); const int mod = 1e9 + 7; const int inf = 1e18; const matrix II = {{1, 0}, {0, 1}}; int32_t main(){ iShowSpeed; int n, k; cin >> n >> k; vector <pair <vector <int>, vector <int>>> a(n); int u[n + 1][k + 1], r[n + 1][k + 1]; memset(u, 0, sizeof u); memset(r, 0, sizeof r); for (int i = 0; i < n; i++) { a[i].first.emb(0); for (int j = 1; j <= k; j++) { a[i].first.emb(0); cin >> a[i].first[j]; } } for (int i = 0; i < n; i++) { a[i].second.emb(0); for (int j = 1; j <= k; j++) { a[i].second.emb(0); cin >> a[i].second[j]; } } multiset <pair <vector <int>, vector <int>>> ms; for (auto [u, r] : a) { ms.emplace(u, r); } int p[n + 1] = {0}; bool visited[n + 1] = {0}; int ans = 0; while (1) { bool yes = false; int i = 0; vector <pair <vector <int>, vector <int>>> del; for (auto [u, r] : ms) { bool ok = true; for (int j = 1; j <= k; j++) { if (p[j] < u[j]) { ok = false; break; } } if (!ok) continue; for (int j = 1; j <= k; j++) { p[j] += r[j]; } del.emb(u, r); yes = true; ans++; } for (auto [u, r] : del) { ms.erase(ms.find({u, r})); } if (!yes) break; } 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...