尽管石油短缺,开幕式还是取得了巨大的成功。现在,组委会正期待着第一天的比赛。但这是怎么回事?技术委员会主席注意到了一些可疑的网络活动——显然有人计划攻击评分服务器!
评分服务器拥有特定的计算能力 $c_G$,神秘的黑客试图将其降低到(或低于)0。但服务器也受到 $f_G$ 个防火墙的保护,每个防火墙都会将攻击的影响减少一个固定量 $S$。在每个时间点,黑客现在可以决定: 拆除其中一个防火墙,永久减少 $f_G$ 1 个(最低减至 0),或者 使用他们自己的全部计算能力 $c_H$ 攻击服务器,永久减少 $c_G$ $\max\{c_H - f_G \cdot S, 0\}$。
然而,主席可以进行反击,要么拆除黑客的一个防火墙 $f_H$,要么利用评分服务器的计算能力攻击黑客,这同样会减少 $c_H$ $\max\{c_G - f_H \cdot S, 0\}$。主席和黑客轮流行动,黑客先手。
在黑客开始攻击之前,组委会不知道黑客拥有多少计算能力和多少防火墙。同时,由于组委会可能仍能升级服务器,其计算能力和防火墙数量也尚不清楚。为了规划防御,组委会需要一个程序,针对 $Q$ 个不同的场景 $(c_H, f_H, c_G, f_G)$,判断即使在主席做出最优决策的情况下,黑客是否仍能攻破评分服务器。
输入格式
输入的第一行包含整数 $S$ 和 $Q$。接下来有 $Q$ 行,每一行描述上述的一个场景,包含四个整数 $c_H, f_H, c_G, f_G$:分别是神秘黑客的计算能力和防火墙数量,以及评分服务器的计算能力和防火墙数量。
输出格式
你的程序应输出 $Q$ 行,每一行包含一个字符串:如果黑客在相应场景中能够将评分服务器的计算能力降低到 0 或以下(无论主席如何决策),则输出 YES,否则输出 NO。
数据范围
我们始终有 $1 \le S \le 30\,000$,$1 \le c_H, c_G \le 10^{12}$,$0 \le f_H, f_G \le 10^{12}$,且 $1 \le Q \le 250\,000$。
- 子任务 1(5 分):$S, c_H, f_H, c_G, f_G \le 75$
- 子任务 2(5 分):$S, c_H, f_H, c_G, f_G \le 300$
- 子任务 3(10 分):$S = 1$
- 子任务 4(25 分):$S, c_H, f_H, c_G, f_G \le 2\,000$
- 子任务 5(20 分):$S \le 400$
- 子任务 6(20 分):$c_G, c_H \le 125$
- 子任务 7(15 分):无额外限制。
样例
样例输入 1
17 2 42 1 33 1 42 1 33 7
样例输出 1
YES NO
样例输入 2
1 1 999999999999 999999999999 999999999999 999999999999
样例输出 2
YES
样例输入 3
2 1 1000000000000 0 1 1000000000000
样例输出 3
NO
说明
考虑第一个样例中的第一个场景: 起初,黑客可以攻击评分服务器,将 $c_G$ 减少 $42 - 1 \cdot 17 = 25$,变为 8。 之后,主席无法通过攻击来减少黑客的计算能力,因此他唯一明智的做法是拆除黑客唯一的防火墙。 * 然而,黑客随后可以通过另一次攻击将评分服务器的计算能力降低到 $8 - 25 = -17 \le 0$,从而攻破服务器,毁掉第一天的比赛。
在第二个场景中: 起初,黑客唯一能做的就是拆除一个防火墙。 之后,主席可以攻击黑客,将其计算能力 $c_H$ 降低到 26。 * 在接下来的两轮中,黑客再次只能拆除一个防火墙,而主席每次都可以进行攻击,从而将 $c_H$ 降低到 0 以下,成功抵御了黑客的攻击。