fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void max_sum_subset_NoAdjacent(vector<int> arr, vector<int> q){
  5. int n = arr.size();
  6. vector<int> dp(n, 0);
  7.  
  8. for (int i = 0; i < n; i ++){
  9. if(i == 0){
  10. dp[i] = arr[i];
  11. }
  12. else if( i == 1){
  13. dp[i] = max(arr[i-1], arr[i]);
  14. }
  15. else {
  16. dp[i] = max(dp[i-1], arr[i]+dp[i-2]);
  17. }
  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> arr = {2, -3, 5, -8, 7};
  29. vector<int> q = {0, 1, 2, 3, 4};
  30.  
  31. max_sum_subset_NoAdjacent(arr, q);
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
2 2 7 7 14