fn main() { proconio::input! { n: usize, d: i64, tk: [(i64, i64); n], } let mut dp = (0, i64::MIN); for (t, k) in tk.into_iter() { let tt = dp.0 + t; let tk = dp.0 + k - d; let kt = dp.1 + t - d; let kk = dp.1 + k; dp = (tt.max(kt), tk.max(kk)); eprintln!("{} {}", dp.0, dp.1); } println!("{}", dp.0.max(dp.1)); }