fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void maxsum_subset_of_two_array(vector<int> a, vector<int> b, vector<int> q){
  5. int n = a.size();
  6.  
  7. vector<int> dp(n,0);
  8.  
  9. for (int i = 0; i < n; i++){
  10. if(i == 0){
  11. dp[i] = max(a[i], b[i]);
  12. }
  13. else if( i == 1){
  14. dp[i] = max({a[i], b[i], dp[i-1]});
  15. }
  16. else {
  17. dp[i] = max({dp[i-1], a[i]+dp[i-2], b[i]+dp[i-2]});
  18. }
  19. }
  20.  
  21. for (int& i: q){
  22. cout << dp[i] << " ";
  23. }
  24. }
  25.  
  26. int main() {
  27. // your code goes here
  28. vector<int> a = {2, 3, 4, -8, 2};
  29. vector<int> b = {-5, 8, 3, 1, -4};
  30. vector<int> q = {0, 1, 2, 3, 4};
  31.  
  32. maxsum_subset_of_two_array(a, b, q);
  33. return 0;
  34. }
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
2 8 8 9 10