fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long int
  4. const int N = 1e5+7;
  5. int arr[N];
  6. int dp[N];
  7.  
  8. int f(int idx, int n){
  9. if(idx >= n){
  10. return 0;
  11. }
  12. if(dp[idx]!=-1) return dp[idx];
  13. int op1 = abs(arr[idx+1]-arr[idx])+f(idx+1, n);
  14. int op2 = abs(arr[idx+2]-arr[idx])+f(idx+2, n);
  15. return dp[idx]=min(op1,op2);
  16. }
  17.  
  18. int main() {
  19. int n;
  20. cin>>n;
  21. for(int i=1; i<=n; i++){
  22. cin>>arr[i];
  23. }
  24. memset(dp, -1, sizeof(dp));
  25. cout<<f(1, n)<<endl;
  26. return 0;
  27. }
Success #stdin #stdout 0.01s 5280KB
stdin
4
10 30 40 20
stdout
30