fork(2) download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. int f[1000005];
  5. int MaximumNonAdj(std::vector<int> arr)
  6. {
  7. int Max=*max_element(arr.begin(), arr.end());
  8. if(arr.size()==1)return arr[0];
  9. memset(f, 0, sizeof(f));
  10. f[0]=arr[0];
  11. f[1]=max(f[0], arr[1]);
  12. for(int i=2;i<arr.size();i++)
  13. {
  14. f[i]=max(max(f[i-2]+arr[i], f[i-1]), f[i-2]);
  15. }
  16. return max(Max,*max_element(f, f+arr.size()));
  17. }
  18. int main() {
  19. vector<int> arr;
  20. int n;
  21. for(int j=0;j<6;j++)
  22. {
  23. cin>>n;
  24. arr.resize(n);
  25. for(int i=0;i<n;i++)cin>>arr[i];
  26. cout<<MaximumNonAdj(arr)<<endl;
  27. }
  28. return 0;
  29. }
Success #stdin #stdout 0s 7532KB
stdin
5 
161 -75 -54 163 -63 
4
121 -63 -110 86
3
-104 46 79 
5 
69 2 -92 69 102 
2 
-32 157 
4 
96 196 57 150
stdout
324
207
79
171
157
346