fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. typedef long long int ll ;
  5.  
  6. int my(int k,int r,int g){
  7.  
  8. return min(k,max(r,g));
  9. }
  10.  
  11.  
  12. int main() {
  13. int n ;
  14. cin>>n ;
  15. int b[n+1] = {0};
  16.  
  17. int i = 1 ;
  18. while(i<=n){
  19. cin>>b[i] ;
  20. i++;
  21. }
  22.  
  23. int dp[n+1][5];
  24.  
  25. dp[1][2] = b[1] ;
  26. dp[1][1] = 100000000 ;
  27. dp[2][2] = 100000000 ;
  28. dp[2][1] = dp[1][2] + b[2] + b[3] ;
  29.  
  30.  
  31. i = 3 ;
  32. while(i<=n-1){
  33.  
  34.  
  35. dp[i][2] = b[i] + min(dp[i-2][1],dp[i-2][2]);
  36. dp[i][1] = b[i] + b[i+1] + dp[i-1][2] ;
  37.  
  38. i++;
  39. }
  40. dp[i][2] = b[n] + min(dp[i-2][2],dp[i-2][1]);
  41. dp[i][1] = 100000000 ;
  42. cout<<my(dp[n][2],dp[n-1][2],dp[n-1][1]);
  43.  
  44.  
  45.  
  46. return 0 ;
  47. }
Success #stdin #stdout 0.01s 5280KB
stdin
5
6 -42 -20 -6 44
stdout
24