fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. long long n, m, a[100005], pref[100005], b[102];
  5.  
  6. int main()
  7. {
  8. ios_base::sync_with_stdio(0);
  9. cin.tie(0); cout.tie(0);
  10.  
  11. freopen("CHUNGKHOAN.INP", "r", stdin);
  12. freopen("CHUNGKHOAN.OUT", "w", stdout);
  13.  
  14. cin >> n >> m;
  15.  
  16. for (int i = 1; i <= n; ++i) {
  17. cin >> a[i];
  18. pref[i] = pref[i - 1] + a[i];
  19. }
  20.  
  21. for (int i = 1; i <= m; ++i) {
  22. cin >> b[i];
  23. }
  24.  
  25. vector<long long> prev_dp(n + 1, 0);
  26. vector<long long> dp(n + 1, 0);
  27.  
  28. for (int j = 1; j <= m; ++j) {
  29. for (int i = 1; i <= n; ++i) {
  30. dp[i] = dp[i - 1];
  31. dp[i] = max(dp[i], prev_dp[i]);
  32.  
  33. if (i >= b[j]) {
  34. long long sum_segment = pref[i] - pref[i - b[j]];
  35. dp[i] = max(dp[i], prev_dp[i - b[j]] + sum_segment);
  36. }
  37. }
  38. prev_dp = dp;
  39. }
  40.  
  41. cout << dp[n];
  42.  
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
Standard output is empty