AT_awc0001_d 街道の商人

题目描述

高桥是一名沿着东西方向延伸的高速公路做生意的商人。沿着这条高速公路,排列着 $N$ 个城镇,从西到东分别编号为 $1, 2, \ldots, N$。在第 $i$ 个城镇做生意可以获得 $A_i$ 的利润,但需要花费 $B_i$ 日元作为住宿费用。 高桥决定从这些城镇中选择一些去做生意。但高桥的马车有如下限制: - 访问的城镇编号不必连续,但当把访问的城镇编号升序排列后,相邻两个编号之间的差必须最多为 $K$。也就是说,若访问的城镇编号升序排列为 $p_1, p_2, \ldots, p_m$,则对于所有 $1 \leq j \leq m-1$ 都有 $p_{j+1} - p_j \leq K$。这是因为马车一次能行驶的距离有限。 高桥能准备的住宿总费用为 $M$ 日元。在选择访问的城镇,使得访问的城镇的住宿总费用不超过 $M$ 日元的前提下,请求出最大可能的总利润。 注意,如果不访问任何城镇,总利润为 $0$。

输入格式

- 第一行包含 $N$,表示城镇数,$M$,表示可用的住宿总费用,$K$,表示马车一次能行驶的最大城镇数,三者以空格分隔。 - 从第二行到第 $N+1$ 行,每行包含两个整数,依次为 $i$ 号城镇的利润 $A_i$ 和住宿费用 $B_i$,两者以空格分隔。

输出格式

输出一行,表示在满足条件的情况下,选择城镇所能获得的最大总利润。

说明/提示

### 数据范围 - $1 \leq N \leq 200$ - $1 \leq M \leq 200$ - $1 \leq K \leq N$ - $1 \leq A_i \leq 10^9$ - $1 \leq B_i \leq M$ - 所有输入均为整数。 由 ChatGPT 5 翻译