#include using namespace std; #define ALL(x) x.begin(),x.end() #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(b ostream &operator<<(ostream &os,const pair&p){ os< ostream &operator<<(ostream &os,const vector&v){ for(int i=0;i<(int)v.size();i++) os<>n>>p; vector h(n);rep(i,n) cin>>h[i]; ll dp[n+1][2]; rep(i,n+1)rep(j,2)dp[i][j]=LINF; dp[0][0]=0; rep(i,n){ rep(j,2){ ll pre=(i==0?h[0]:h[i-1]); // 区間開始 chmin(dp[i+1][j],dp[i][0]+p); chmin(dp[i+1][j],dp[i][1]+p); if(j==0)chmin(dp[i+1][j],dp[i][j]+max(h[i]-pre,0ll)); else chmin(dp[i+1][j],dp[i][j]+max(pre-h[i],0ll)); } } cout<