#ifndef LOCAL #include using namespace std; #define debug(...) (void(0)) #else #include "algo/debug.h" #endif void solve() { int N, D; cin >> N >> D; pair dp{0, -D}; for(int i = 0; i < N; i++) { pair ndp{-1e18, -1e18}; int t, k; cin >> t >> k; ndp.first = max(ndp.first, dp.first + t); ndp.first = max(ndp.first, dp.second + k - D); ndp.second = max(ndp.second, dp.second + k); ndp.second = max(ndp.second, dp.first + t - D); dp.swap(ndp); } cout << max(dp.first, dp.second) << endl; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int tt = 1; // std::cin >> tt; while (tt--) { solve(); } }