#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef pair P; const ll mod = 1000000007; #define rep(i,n) for(int i=0;i=0;i--) #define all(x) (x).begin(),(x).end() int main() { int N, D; cin >> N >> D; vector

costs; rep(i, N) { ll t, k; cin >> t >> k; costs.emplace_back(t, k); } vector> dp(2, vector(costs.size(), 0)); dp[0][0] = costs[0].first; dp[1][0] = costs[0].second - D; repl(i, 1, N) { dp[0][i] = max(dp[0][i - 1] , dp[1][i - 1] - D) + costs[i].first; dp[1][i] = max(dp[0][i - 1] - D , dp[1][i - 1] ) + costs[i].second; } cout << max(dp[0][N - 1], dp[1][N - 1]) << endl; return 0; }