AT_arc027_3.[ARC027C] 最高のトッピングにしような

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

在我常去的一家餐馆里,用餐可以获得兑换券。

兑换券有两种类型:一种是提供额外功能的“特殊兑换券”,另一种是“普通兑换券”。

这家餐馆提供 NN 种配料,你可以用 tit_i 张票券换得每种配料 ii。在组合兑换中,同一种配料不可重复获取。兑换时,尽管两种类型的兑换券等值,但需保证每种配料的兑换至少包含一张“特殊兑换券”。例如,若某种配料需要 4 张票券,有以下 4 种兑换组合:

  • 1 张特殊兑换券和 3 张普通兑换券。
  • 2 张特殊兑换券和 2 张普通兑换券。
  • 3 张特殊兑换券和 1 张普通兑换券。
  • 全用 4 张特殊兑换券。

每种配料都有各自的“快乐值”,用 hih_i 表示获取配料 ii 时的快乐值。

今天是个特别的日子,我希望通过合理利用现有的兑换券,最大化兑换配料带来的总快乐值。请设计一个程序,计算出在当前的票券和配料信息下,能够获取的最大快乐值。

输入格式

输入由标准输入提供,格式如下:

XX YY NN t1t_1 h1h_1 t2t_2 h2h_2 : tNt_N hNh_N

  • 第一行有两个整数 XX 和 YY(1≤X≤3001 \leq X \leq 300,0≤Y≤3000 \leq Y \leq 300),分别表示初始持有的特殊兑换券数和普通兑换券数。
  • 第二行有一个整数 NN(1≤N≤3001 \leq N \leq 300),表示配料种类数。
  • 接下来的 NN 行中,每行包含两个整数 tit_i 和 hih_i(1≤ti≤6001 \leq t_i \leq 600,1≤hi≤5,000,0001 \leq h_i \leq 5,000,000),分别表示配料 ii 需要的票券数和对应的快乐值。

输出格式

输出可能获得的最大快乐值,以一个整数形式输出。记得在最后加上换行。

输入输出样例

  • 输入#1

    3 5
    4
    3 30
    3 40
    5 60
    7 80

    输出#1

    100
  • 输入#2

    3 3
    4
    3 30
    3 40
    5 60
    7 80

    输出#2

    70
  • 输入#3

    1 5
    4
    3 30
    3 40
    5 60
    7 80

    输出#3

    60
  • 输入#4

    6 12
    4
    3 30
    3 40
    5 60
    7 80

    输出#4

    210

说明/提示

部分得分

题目设有部分得分:

  • 对于数据集 1,满足条件 X≤50X \leq 50,Y≤50Y \leq 50,N≤50N \leq 50,ti≤100t_i \leq 100 的正确解答可以获得 30 分。
  • 对于没有额外限制的通用数据集 2,正确解答可以获得 70 分。

样例解释

  • 初始有 3 张特殊兑换券和 5 张普通兑换券。通过以下组合可以得到最大快乐值 100(即40 + 60):

    • 使用 1 张特殊兑换券和 2 张普通兑换券兑换配料 2(需 3 张票券),获得快乐值 40。
    • 使用 2 张特殊兑换券和 3 张普通兑换券兑换配料 3(需 5 张票券),获得快乐值 60。
      这个组合用掉了 3 张特殊和 5 张普通兑换券,是可行的。
  • 最优选择是获取配料 1 和配料 2。

  • 选择配料 3,并留下一张票券,是最优解。

  • 可以获取所有的配料。

本翻译由 AI 自动生成

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

首页