#L4018. 「CEOI2023」Bring Down the ̶S̶k̶y̶ Grading Server

「CEOI2023」Bring Down the ̶S̶k̶y̶ Grading Server

题目描述

尽管油量不足,开幕式还是取得了巨大成功(至少忽略舞台在 101710^{17} 名演员的重压下轰然倒塌的场面)。现在,委员会正期待着第一个比赛日。但是这是什么?技术委员会主席注意到了一些可疑的网络活动——显然有人计划黑掉测评服务器!

测评服务器的算力为 cGc_G,这个神秘的黑客会尝试将其降为 00。但是这个服务器同样被 fGf_G 个防火墙保护,每个防火墙会将任意攻击的影响减少一个固定值 SS。在每个时刻,黑客可以决定:

  • 要么攻破一个防火墙,永久地将 fGf_G 减一(最多减到 00);
  • 要么使用他所有的算力 cHc_H 去攻击服务器,永久地将 cGc_Gmax{cHfGS,0}\max\{c_H - f_G \cdot S, 0\}

然而,主席可以通过以下两种方式反击(与黑客轮流行动,黑客先手):

  • 要么攻破黑客的 fHf_H 个防火墙中的一个;
  • 要么使用测评服务器的算力攻击黑客,使 cHc_Hmax{cGfHS,0}\max\{c_G - f_H \cdot S, 0\}

委员会直到攻击开始才会知道黑客拥有多少算力和防火墙,同时服务器的算力和防火墙数也不确定。为了计划防御方案,委员会需要一个程序,对于 QQ 个不同的场景 (cH,fH,cG,fG)(c_H, f_H, c_G, f_G),判断若主席采用最优策略,黑客是否仍能攻破测评系统。

输入格式

  • 第一行包含整数 SSQQ
  • 接下来 QQ 行,每行四个整数 cH,fH,cG,fGc_H, f_H, c_G, f_G,分别表示黑客的算力、黑客的防火墙数、服务器的算力、服务器的防火墙数。

输出格式

输出 QQ 行,若在该场景下,无论主席如何操作,黑客总可以将测评服务器的算力减到 00 或以下,输出 YES,否则输出 NO

样例输入与输出

样例 1

输入

17 2
42 1 33 1
42 1 33 7

输出

YES
NO

解释

  • 第一个场景:
    初始时,黑客攻击服务器,cGc_G 减少 42117=2542 - 1 \cdot 17 = 25,变为 88
    主席只能攻破黑客唯一的防火墙,之后黑客再次攻击,cGc_G2525 变为 170-17 \leq 0,黑客成功。
  • 第二个场景:
    初始时,黑客只能先攻破服务器防火墙。
    主席随后攻击黑客,将 cHc_H 减至 2626;后续黑客持续破墙时,主席每次攻击都能降低 cHc_H,最终使 cH<0c_H < 0,黑客失败。

样例 2

输入

1 1
999999999999 999999999999 999999999999 999999999999

输出

YES

样例 3

输入

2 1
1000000000000 0 1 1000000000000

输出

NO

数据范围与提示

1. 通用数据范围

变量 取值范围
SS 1S3×1041 \leq S \leq 3 \times 10^4
cHc_H 1cH10121 \leq c_H \leq 10^{12}
fHf_H 0fH10120 \leq f_H \leq 10^{12}
cGc_G 1cG10121 \leq c_G \leq 10^{12}
fGf_G 0fG10120 \leq f_G \leq 10^{12}
QQ 1Q2.5×1051 \leq Q \leq 2.5 \times 10^5

2. 子任务附加限制与分值

子任务编号 附加限制 分值
1 S,cH,fH,cG,fG75S, c_H, f_H, c_G, f_G \leq 75 5
2 S,cH,fH,cG,fG300S, c_H, f_H, c_G, f_G \leq 300
3 S=1S = 1 10
4 S,cH,fH,cG,fG2000S, c_H, f_H, c_G, f_G \leq 2000 25
5 S400S \leq 400 20
6 fG,fH125f_G, f_H \leq 125
7 无附加限制 15