package main import ( "bufio" "fmt" "os" "strconv" ) func main() { var n, d, t, k, inT, inK, tmpT, tmpK int // 日数、交通費、東京報酬、京都報酬、最大東京収益、最大京都収益、東京計算用、京都計算用 _, _ = fmt.Scan(&n, &d) sc := bufio.NewScanner(os.Stdin) sc.Split(bufio.ScanWords) inK = -d // 最初は東京にいるので、京都に居るという場合は東京から移動した後ということになる for i := 0; i < n; i++ { sc.Scan() t, _ = strconv.Atoi(sc.Text()) sc.Scan() k, _ = strconv.Atoi(sc.Text()) tmpT = inT if inT < inK-d { tmpT = inK - d } tmpK = inK if inK < inT-d { tmpK = inT - d } inT = tmpT + t inK = tmpK + k } if inT < inK { fmt.Println(inK) } else { fmt.Println(inT) } }