func main() var n: int :: cui@inputInt() var d: int :: cui@inputInt() var t: []int :: #[n]int var k: []int :: #[n]int for i(0, n - 1) do t[i] :: cui@inputInt() do k[i] :: cui@inputInt() end for var dp: [][]int :: #[n, 2]int do dp[0][0] :: t[0] do dp[0][1] :: k[0] - d for i(1, n - 1) do dp[i][0] :: [dp[i - 1][0], dp[i - 1][1] - d].max() + t[i] do dp[i][1] :: [dp[i - 1][0] - d, dp[i - 1][1]].max() + k[i] end for var ans: int :: dp[n - 1].max() do cui@print("\{ans}\n") end func