#31318. 胖头鱼战士(warrior)

胖头鱼战士(warrior)

【题目描述】

胖头鱼做了一个奇怪的梦,他变成了一名胖头鱼战士!

现在,有 nn 只怪兽等待着胖头鱼去击败,第 ii 只怪兽的防御力为 did_i 、经验值为 pip_i 。胖头鱼拥有 mm 把武器,第 ii 把武器的攻击力为 aia_i 、耐久度为 eie_i 。胖头鱼可以选择一些怪兽进行攻击,每次攻击时需要选择一把武器,只有当武器的攻击力不小于怪兽的防御力时,才能成功击败怪兽并获得经验值。每次成功击败怪兽后,武器的耐久度会减少 11 ,当武器的耐久度减少到 00 时,胖头鱼将不能再使用这把武器。

作为一名优秀的战士,胖头鱼现在想知道,在做出最佳选择的情况下,他最多可以获得多少经验值

【输入格式】

第一行包含两个整数 nnmm ,表示有 nn 只怪兽和 mm 把武器。

接下来 nn 行,每行包含两个整数 did_ipip_i ,按顺序给出每只怪兽的防御力与经验值。

接下来 mm 行,每行包含两个整数 aia_ieie_i ,按顺序给出每把武器的攻击力与耐久度。

【输出格式】

输出一个整数,表示最多可以获得的经验值。

【样例 1 输入】

存放在试题目录下的 sample/warrior/warrior1.in 文件中。

5 1
8 3
2 3
7 6
5 1
3 4
5 2

【样例 1 输出】

存放在试题目录下的 sample/warrior/warrior1.out 文件中。

7

【样例 1 解释】

胖头鱼拥有一把攻击力为 55 且耐久度为 22 的武器,可以用它击败防御力为 22 且经验值为 33 的第 22 只怪兽和防御力为 33 且经验值为 44 的第 55 只怪兽,总共获得 3+4=73 + 4 = 7 经验值。

【样例 2 输入】

存放在试题目录下的 sample/warrior/warrior2.in 文件中。

6 2
4 3
5 4
6 1
1 4
2 1
3 5
6 2
3 1

【样例 2 输出】

存放在试题目录下的 sample/warrior/warrior2.out 文件中。

13

【样例 2 解释】

11 把武器的攻击力为 66 且耐久度为 22 ,可以用它击败防御力为 55 且经验值为 44 的第 22 只怪兽和防御力为 11 且经验值为 44 的第 44 只怪兽。第 22 把武器的攻击力为 33 且耐久度为 11 ,可以用它击败防御力为 33 且经验值为 55 的第 66 只怪兽。总共获得 4+4+5=134 + 4 + 5 = 13 经验值。

【样例 3 和 4】

存放在试题目录下的 sample/warrior/warrior3.insample/warrior/warrior3.outsample/warrior/warrior4.insample/warrior/warrior4.out 文件中。

warrior.zip

【数据说明】

对于所有数据, 1n,m1051 ≤ n, m ≤ 10^51di,pi,ai,ei1091 ≤ d_i, p_i, a_i, e_i ≤ 10^9

部分测试点的特殊属性如下:

  • 对于数据点 141 - 4n,m103n, m ≤ 10^3pi=1p_i = 1 ,表示怪兽和武器的数量较少,且所有怪兽的经验值均为最小值。
  • 对于数据点 585 - 8pi=1p_i = 1 ,表示所有怪兽的经验值均为最小值。
  • 对于数据点 9149 - 14n,m103n, m ≤ 10^3 ,表示怪兽和武器的数量较少。