Submission #1160902

#TimeUsernameProblemLanguageResultExecution timeMemory
1160902Paul_Liao_1457만두 (JOI14_ho_t2)C++20
100 / 100
15 ms552 KiB
#include <iostream> #define INF (long long)(1e18) using namespace std; const int N = 10005; int p[N], c[N], e[N]; long long dp[N]; // dp[i]: min price for packing i manjus int main() { int m, n; cin >> m >> n; for (int i = 0; i < m; i++) cin >> p[i]; for (int i = 0; i < n; i++) cin >> c[i] >> e[i]; // processing dp for (int i = 1; i <= 10001; i++) dp[i] = INF; for (int i = 0; i < n; i++) { for (int j = 10000; j >= 0; j--) { dp[j] = min(dp[j], dp[j+1]); if (j >= c[i]) dp[j] = min(dp[j], dp[j-c[i]] + e[i]); } } // processing manju sort(p, p + m, [](int a, int b) { return a > b; }); for (int i = 1; i < m; i++) p[i] += p[i-1]; long long ans = 0; for (int i = 1; i <= m; i++) ans = max(ans, p[i-1] - dp[i]); cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...