// No.561 東京と京都 // https://yukicoder.me/problems/no/561 // #include using namespace std; int solve(int N, int D); int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); int N, D; cin >> N >> D; int ans = solve(N, D); cout << ans << endl; } int solve(int N, int D) { int last_tokyo = 0; int last_kyoto = -D; for (auto i = 0; i < N; ++i) { int t, k; cin >> t >> k; int t_tokyo = max(last_tokyo + t, last_kyoto + t - D); int t_kyoto = max(last_kyoto + k, last_tokyo + k - D); last_tokyo = t_tokyo; last_kyoto = t_kyoto; } return max(last_tokyo, last_kyoto); }