CF2232F The Cake Is a Lie

题目描述

为了结束派对,Alice 决定为她的朋友们煎一些松饼。 Alice 有 $n$ 个未煮熟的松饼,但只有 $2$ 个平底锅。最开始,前 $min(n,2)$ 个松饼会放在锅上,而且所有松饼的熟度都是 $0$。 煎松饼时,Alice 可以无限次执行以下两种操作: - 同时煎锅上的两个松饼 $1$ 分钟。第一个锅上的松饼的熟度增加 $a$,第二个锅上的松饼的熟度增加 $b$。 - 端走第一个锅上的松饼,把第二个锅上的松饼移到第一个锅上,然后把新的未煮熟的松饼放到第二个锅上(如果还有完全未煮熟的松饼剩余)。注意这一步不需要时间,也可以连续重复多次。 注意如果只剩一个松饼时,它会被放在第一个锅上,每分钟熟度增加 $a$,直到 Alice 决定端走它。 如果一个松饼的熟度恰好等于 $k$,那么它是“完全煮熟”的。 请你帮助 Alice 计算,她最多能端出多少个完全煮熟的松饼。

输入格式

每组测试包含多个测试用例。第一行为测试用例数 $t$($1 \le t \le 1000$)。接下来每个测试用例输入一行,包含 $4$ 个正整数 $n, a, b, k$($1 \le n,a,b,k \le 10^9$),分别表示 Alice 有的松饼数、第一个锅每分钟增加的熟度、第二个锅每分钟增加的熟度、以及松饼被认为完全煮熟所需的熟度。

输出格式

对于每个测试用例,输出 Alice 最多能端出多少个完全煮熟的松饼。

说明/提示

在第一个测试用例中,Alice 可以每次两块松饼一组全部煮熟。因此,最多能端出 $17$ 个完全煮熟的松饼。 在第二个测试用例中,两个锅都太烫,每次都会把松饼煮过头。因此,最多能端出 $0$ 个完全煮熟的松饼。 在第三个测试用例中,Alice 可以让前两个松饼在锅上煎 $3003$ 分钟后一起端走,此时一个未熟,另一个方好。最后剩下的松饼在锅上单独煎 $10\,101$ 分钟即可刚好煮熟。因为无法让前两个松饼都同时达到完美度,最多端出 $2$ 个完全煮熟的松饼。 由 ChatGPT 5 翻译