#include #include typedef long long ll; using namespace std; ll dp[222222][2]; int main() { int N; ll P; cin >> N >> P; vector H(N); for (int i = 0; i < N; i++) { cin >> H[i]; } ll INF = 1ll * 100000 * 100000 * 100000 * 1000; dp[0][1] = P; for (int i = 1; i < N; i++) { for (int j = 0; j < 2; j++) { int nj = j^1; ll diff = (j == 0 ? H[i] - H[i-1] : H[i-1] - H[i]); diff = max(0ll, diff); ll d1 = dp[i-1][j] + min(P, diff); ll d2 = dp[i-1][nj] + P; dp[i][j] = min(d1, d2); } } cout << min(dp[N-1][0], dp[N-1][1]) << endl; return 0; }