Submission #1242491

#TimeUsernameProblemLanguageResultExecution timeMemory
1242491glx200Cloud Computing (CEOI18_clo)C++17
100 / 100
261 ms1244 KiB
#include <bits/stdc++.h> using namespace std; int n, m, a, b, c; long long f[100001]; array<int, 3> p[4001]; int main() { cin >> n; fill_n(f, 1e5 + 1, -2e18); f[0] = 0; for (int i = 1; i <= n; ++i) { cin >> p[i][1] >> p[i][0] >> p[i][2]; p[i][2] = -p[i][2]; } cin >> m; for (int i = 1; i <= m; ++i) { cin >> p[i + n][1] >> p[i + n][0] >> p[i + n][2]; p[i + n][1] = -p[i + n][1]; } sort(p + 1, p + n + m + 1, greater<array<int, 3>>()); for (int i = 1; i <= n + m; ++i) { if (p[i][1] < 0) { for (int j = 0; j <= 1e5; ++j) { if (j + p[i][1] >= 0) { f[j + p[i][1]] = max(f[j + p[i][1]], f[j] + p[i][2]); } } } else { for (int j = 1e5; j >= 0; --j) { if (j + p[i][1] <= 1e5) { f[j + p[i][1]] = max(f[j + p[i][1]], f[j] + p[i][2]); } } } } cout << (*max_element(f, f + 100001)); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...