AT_awc0001_d.街道の商人

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥是一名沿着东西方向延伸的高速公路做生意的商人。沿着这条高速公路,排列着 NN 个城镇,从西到东分别编号为 1,2,…,N1, 2, \ldots, N。在第 ii 个城镇做生意可以获得 AiA_i 的利润,但需要花费 BiB_i 日元作为住宿费用。

高桥决定从这些城镇中选择一些去做生意。但高桥的马车有如下限制:

  • 访问的城镇编号不必连续,但当把访问的城镇编号升序排列后,相邻两个编号之间的差必须最多为 KK。也就是说,若访问的城镇编号升序排列为 p1,p2,…,pmp_1, p_2, \ldots, p_m,则对于所有 1≤j≤m−11 \leq j \leq m-1 都有 pj+1−pj≤Kp_{j+1} - p_j \leq K。这是因为马车一次能行驶的距离有限。

高桥能准备的住宿总费用为 MM 日元。在选择访问的城镇,使得访问的城镇的住宿总费用不超过 MM 日元的前提下,请求出最大可能的总利润。

注意,如果不访问任何城镇,总利润为 00。

输入格式

  • 第一行包含 NN,表示城镇数,MM,表示可用的住宿总费用,KK,表示马车一次能行驶的最大城镇数,三者以空格分隔。
  • 从第二行到第 N+1N+1 行,每行包含两个整数,依次为 ii 号城镇的利润 AiA_i 和住宿费用 BiB_i,两者以空格分隔。

输出格式

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

输入输出样例

  • 输入#1

    5 10 2
    8 3
    5 4
    10 5
    3 2
    7 3

    输出#1

    21
  • 输入#2

    4 5 1
    100 2
    200 3
    150 2
    50 1

    输出#2

    350
  • 输入#3

    10 50 3
    1000000000 10
    500000000 8
    800000000 12
    300000000 5
    600000000 15
    900000000 20
    400000000 7
    700000000 11
    200000000 6
    550000000 9

    输出#3

    3450000000

说明/提示

数据范围

  • 1≤N≤2001 \leq N \leq 200
  • 1≤M≤2001 \leq M \leq 200
  • 1≤K≤N1 \leq K \leq N
  • 1≤Ai≤1091 \leq A_i \leq 10^9
  • 1≤Bi≤M1 \leq B_i \leq M
  • 所有输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页