#dmy425. 终末对战

终末对战

终末对战

我的力量无人能及!

题目背景

终末祭坛上,邪教徒宣称自己拥有无人能及的力量。机宝虽然初始血量并不充裕,但它仍要在有限的回合内完成反击。

每一回合,机宝都能临时获得一批打击牌和防御牌。防御牌可以立刻抵挡本回合的攻击,而打击牌造成的伤害会在邪教徒攻击之后才结算。因此,机宝必须先活下来,才有机会用本回合的打击牌击败邪教徒。

题目描述

邪教徒初始有 HPHP 点血量,机宝初始有 hphp 点血量。机宝需要在至多 nn 个回合内击败邪教徒。

在第 ii 个回合,会依次发生以下事件:

  1. 机宝的手牌被清空,防御值重置为 00
  2. 机宝获得 uiu_i 张打击牌和 viv_i 张防御牌,并从这些牌中选择至多 kik_i 张打出。
    • 每打出一张防御牌,机宝本回合的防御值立即增加 DD
    • 每打出一张打击牌,会在邪教徒攻击后对邪教徒造成 SS 点伤害。
  3. 邪教徒发动攻击。若机宝当前防御值为 yy,则机宝的血量减少 max(wiy,0)\max(w_i-y,0)
  4. 若机宝的血量小于等于 00,游戏立即结束,机宝失败。即使本回合的打击牌伤害足以击败邪教徒,也不会再结算。
  5. 若机宝仍然存活,则结算本回合打击牌造成的伤害。若本回合机宝打出了 xx 张打击牌,则邪教徒血量减少 xSxS
  6. 若此时邪教徒的血量小于等于 00,游戏立即结束,机宝胜利。

如果 nn 个回合全部结束后邪教徒仍然存活,则邪教徒会发动诸神之黄昏,机宝失败。

机宝希望取得胜利。在能够胜利的前提下,它希望自己的剩余血量尽可能多。请你求出机宝获胜时的最大剩余血量。

输入格式

第一行包含五个正整数 n,HP,hp,D,Sn,HP,hp,D,S,分别表示最大回合数、邪教徒的初始血量、机宝的初始血量、每张防御牌提供的防御值以及每张打击牌造成的伤害。

接下来 nn 行,每行包含四个正整数 ui,vi,ki,wiu_i,v_i,k_i,w_i,分别表示第 ii 个回合机宝获得的打击牌数量、防御牌数量、最多可以打出的牌数以及邪教徒本回合的攻击力。

输出格式

输出一个整数。

如果机宝能够击败邪教徒,输出获胜时的最大剩余血量;否则输出 -1

样例 #1

样例输入 #1

3 15 10 3 5
2 2 2 5
1 2 2 4
2 1 2 6

样例输出 #1

4

样例解释 #1

一种可行但并非最优的策略如下:

  • 11 回合打出 11 张防御牌和 11 张打击牌,受到 22 点伤害,并造成 55 点伤害。
  • 22 回合打出 11 张防御牌和 11 张打击牌,受到 11 点伤害,并造成 55 点伤害。
  • 33 回合打出 22 张打击牌,受到 66 点伤害,并造成 1010 点伤害。

机宝最终剩余 10216=110-2-1-6=1 点血量。

一种最优策略是:前三回合都各打出 11 张打击牌和 11 张防御牌。三回合分别受到 2,1,32,1,3 点伤害,并在第 33 回合结算后击败邪教徒,最终剩余 44 点血量。

样例 #2

样例输入 #2

2 100 10 5 2
1 1 1 10
1 1 1 10

样例输出 #2

-1

样例解释 #2

在两个回合内,机宝最多只能造成 2×2=42\times 2=4 点伤害,无法击败血量为 100100 的邪教徒,因此输出 -1

数据范围与子任务

注意:只有通过某个子任务的所有测试点,才能获得该子任务的分数。

对于所有测试数据,保证:

$$1\le n\le 2\times 10^5,\quad 1\le HP\le 10^{15},\quad 1\le hp,D,S\le 10^9,$$

且对于任意 1in1\le i\le n,有:

1ui,vi,ki,wi109.1\le u_i,v_i,k_i,w_i\le 10^9.
子任务编号 分数 限制
11 2020 n8n\le 8HP10HP\le 10,且 hp,D,S,ui,vi,ki,wi10hp,D,S,u_i,v_i,k_i,w_i\le 10
22 n2000n\le 2000HP2000HP\le 2000,且 ki2000k_i\le 2000
33 6060 无额外限制