#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i,n) for(int i=0; i=b; --i) #define ALL(c) (c).begin(), (c).end() typedef long long ll; typedef vector VI; typedef vector VL; typedef vector VVL; typedef vector VVI; typedef pair P; typedef pair PL; const ll INF = 1e18; int main() { int n; ll p; cin >> n >> p; VL h(n); REP(i,n) scanf("%lld", &h[i]); VL dpr(n,INF), dpl(n,INF); dpr[0] = 0; REP(i,n-1){ dpr[i+1] = min(dpr[i+1], dpr[i] + min(p, max(0LL, h[i+1] - h[i]))); dpl[i+1] = min(dpl[i+1], dpl[i] + min(p, max(0LL, h[i] - h[i+1]))); dpr[i+1] = min(dpr[i+1], dpl[i] + p); dpl[i+1] = min(dpl[i+1], dpr[i] + p); } cout << min(dpl[n-1], dpr[n-1]) << endl; return 0; }