fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int n=50;
  7. vector<int>a={17, -3, 25, -11, 8, -19, 13, -7, 22, -5, 9, -14, 6, -18, 20, -2, 11, -9, 4, -16,
  8. 15, -6, 23, -12, 7, -20, 18, -1, 10, -13, 5, -17, 21, -4, 14, -8, 3, -15, 19, -10,
  9. 2, -21, 16, -22, 24, -23, 1, -24, 12, -25};
  10. vector<int>b={-10, 21, -5, 14, -18, 6, -12, 25, -3, 9, -7, 20, -2, 11, -16, 4, -13, 22, -8, 5,
  11. -19, 7, -1, 18, -6, 23, -4, 15, -11, 2, -20, 8, -9, 17, -14, 3, -21, 10, -15, 24,
  12. -22, 12, -17, 1, -23, 13, -24, 16, -25, 19};
  13.  
  14.  
  15. vector<vector<vector<int>>>dp(n,vector<vector<int>>(2,vector<int>(3,-1000000)));
  16. dp[0][1][1]=a[0];
  17. dp[0][0][1]=b[0];
  18. dp[0][1][2]=-1000000;//
  19. dp[0][0][2]=-1000000; //
  20.  
  21.  
  22. for(int i=1;i<n;i++){
  23. dp[i][1][2]=a[i]+dp[i-1][1][1];
  24. dp[i][1][1]=a[i]+max(dp[i-1][0][1],dp[i-1][0][2]);
  25. dp[i][0][2]=b[i]+dp[i-1][0][1];
  26. dp[i][0][1]=b[i]+max(dp[i-1][1][1],dp[i-1][1][2]);
  27. }
  28.  
  29. cout<<max(max(dp[n-1][0][1],max(dp[n-1][1][1],dp[n-1][1][2])),dp[n-1][0][2])<<endl;
  30. return 0;
  31. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
650