제출 #1318707

#제출 시각아이디문제언어결과실행 시간메모리
1318707nagorn_phTopical (NOI23_topical)C++20
40 / 100
1088 ms31728 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; int u[n + 1][k + 1], r[n + 1][k + 1]; memset(u, 0, sizeof u); memset(r, 0, sizeof r); for (int i = 1; i <= n; i++) { for (int j = 1; j <= k; j++) { cin >> u[i][j]; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= k; j++) { cin >> r[i][j]; } } int cur = 0; int p[n + 1] = {0}; bool visited[n + 1] = {0}; while (1) { bool yes = false; for (int i = 1; i <= n; i++) { if (visited[i]) continue; bool ok = true; for (int j = 1; j <= k; j++) { if (p[j] < u[i][j]) { ok = false; break; } } if (!ok) continue; for (int j = 1; j <= k; j++) { p[j] += r[i][j]; } yes = true; visited[i] = true; } if (!yes) break; } cout << count(visited + 1, visited + 1 + n, true); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...