#L4018. 「CEOI2023」Bring Down the ̶S̶k̶y̶ Grading Server
「CEOI2023」Bring Down the ̶S̶k̶y̶ Grading Server
题目描述
尽管油量不足,开幕式还是取得了巨大成功(至少忽略舞台在 名演员的重压下轰然倒塌的场面)。现在,委员会正期待着第一个比赛日。但是这是什么?技术委员会主席注意到了一些可疑的网络活动——显然有人计划黑掉测评服务器!
测评服务器的算力为 ,这个神秘的黑客会尝试将其降为 。但是这个服务器同样被 个防火墙保护,每个防火墙会将任意攻击的影响减少一个固定值 。在每个时刻,黑客可以决定:
- 要么攻破一个防火墙,永久地将 减一(最多减到 );
- 要么使用他所有的算力 去攻击服务器,永久地将 减 。
然而,主席可以通过以下两种方式反击(与黑客轮流行动,黑客先手):
- 要么攻破黑客的 个防火墙中的一个;
- 要么使用测评服务器的算力攻击黑客,使 减 。
委员会直到攻击开始才会知道黑客拥有多少算力和防火墙,同时服务器的算力和防火墙数也不确定。为了计划防御方案,委员会需要一个程序,对于 个不同的场景 ,判断若主席采用最优策略,黑客是否仍能攻破测评系统。
输入格式
- 第一行包含整数 和 。
- 接下来 行,每行四个整数 ,分别表示黑客的算力、黑客的防火墙数、服务器的算力、服务器的防火墙数。
输出格式
输出 行,若在该场景下,无论主席如何操作,黑客总可以将测评服务器的算力减到 或以下,输出 YES,否则输出 NO。
样例输入与输出
样例 1
输入
17 2
42 1 33 1
42 1 33 7
输出
YES
NO
解释
- 第一个场景:
初始时,黑客攻击服务器, 减少 ,变为 。
主席只能攻破黑客唯一的防火墙,之后黑客再次攻击, 减 变为 ,黑客成功。 - 第二个场景:
初始时,黑客只能先攻破服务器防火墙。
主席随后攻击黑客,将 减至 ;后续黑客持续破墙时,主席每次攻击都能降低 ,最终使 ,黑客失败。
样例 2
输入
1 1
999999999999 999999999999 999999999999 999999999999
输出
YES
样例 3
输入
2 1
1000000000000 0 1 1000000000000
输出
NO
数据范围与提示
1. 通用数据范围
| 变量 | 取值范围 |
|---|---|
2. 子任务附加限制与分值
| 子任务编号 | 附加限制 | 分值 |
|---|---|---|
| 1 | 5 | |
| 2 | ||
| 3 | 10 | |
| 4 | 25 | |
| 5 | 20 | |
| 6 | ||
| 7 | 无附加限制 | 15 |