CF1371C A Cookie for You
题目描述
Anna 是一个非常勇敢的女孩,深受城市里每个人的喜爱,市民们也很喜欢她做的饼干。她计划举办一场有饼干的聚会。现在她为聚会准备了 $a$ 块香草饼干和 $b$ 块巧克力饼干。
她邀请了 $n$ 位第一类客人和 $m$ 位第二类客人参加聚会。这些客人会以某种顺序到达聚会。每位客人到达后,会选择一种类型的饼干(香草或巧克力)来吃。不同类型的客人在选择饼干时有如下区别:
假设此时还有 $v$ 块香草饼干和 $c$ 块巧克力饼干,当客人到来时:
- 如果是第一类客人:如果 $v > c$,则选择香草饼干;否则选择巧克力饼干。
- 如果是第二类客人:如果 $v > c$,则选择巧克力饼干;否则选择香草饼干。
之后:
- 如果所选类型的饼干还有至少一块,客人就吃掉一块。
- 否则(所选类型的饼干已经没有了),客人会生气并回家。
Anna 想知道是否存在一种客人到达的顺序,使得没有任何一位客人生气。你的任务是回答她的问题。
输入格式
输入包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。接下来的 $t$ 行,每行描述一个测试用例。
每个测试用例包含四个整数 $a$、$b$、$n$、$m$($0 \le a, b, n, m \le 10^{18}$,且 $n + m \neq 0$)。
输出格式
对于每个测试用例,输出一行答案。如果存在至少一种有效的顺序,使得没有客人生气,输出 "Yes";否则输出 "No"。
你可以用任意大小写输出答案。
说明/提示
在第一个测试用例中,考虑客人类型顺序为 $\{1, 2, 2\}$。则:
- 第一个客人吃了一块巧克力饼干。此时还剩 $2$ 块香草饼干和 $1$ 块巧克力饼干。
- 第二个客人吃了一块巧克力饼干。此时还剩 $2$ 块香草饼干和 $0$ 块巧克力饼干。
- 最后一个客人选择巧克力饼干,但巧克力饼干已经没有了,所以这位客人生气了。
因此,Anna 不能选择这种顺序。
再考虑客人类型顺序为 $\{2, 2, 1\}$。则:
- 第一个客人吃了一块香草饼干。此时还剩 $1$ 块香草饼干和 $2$ 块巧克力饼干。
- 第二个客人吃了一块香草饼干。此时还剩 $0$ 块香草饼干和 $2$ 块巧克力饼干。
- 最后一个客人吃了一块巧克力饼干。此时还剩 $0$ 块香草饼干和 $1$ 块巧克力饼干。
因此,这个测试用例的答案是 "Yes"。
在第五个测试用例中,说明了饼干总数($a + b$)可以为零,但客人总数($n + m$)不能为零。
在第六个测试用例中,要注意 $32$ 位整数类型的溢出问题。
由 ChatGPT 4.1 翻译