CF1102C Doors Breaking and Repairing

题目描述

你是一名警察,正在和 Slavik 玩一个回合制游戏。每个回合分为两个阶段:第一阶段由你行动,第二阶段由 Slavik 行动。 有 $n$ 扇门,第 $i$ 扇门的初始耐久度为 $a_i$。 在你的回合,你可以尝试破坏一扇门。如果你选择第 $i$ 扇门,当前耐久度为 $b_i$,则你可以将其耐久度减少到 $max(0, b_i - x)$(其中 $x$ 已知)。 在 Slavik 的回合,他会尝试修理一扇门。如果他选择第 $i$ 扇门,当前耐久度为 $b_i$,则他可以将其耐久度增加到 $b_i + y$(其中 $y$ 已知)。Slavik 不能修理当前耐久度为 $0$ 的门。 游戏持续 $10^{100}$ 个回合。如果某一方无法进行操作,则跳过该回合。 你的目标是在游戏结束时,使耐久度为 $0$ 的门的数量最大化。你可以假设 Slavik 会尽量让耐久度为 $0$ 的门的数量最少。如果你们都采取最优策略,最后耐久度为 $0$ 的门的数量是多少?

输入格式

输入的第一行包含三个整数 $n$、$x$ 和 $y$($1 \le n \le 100$,$1 \le x, y \le 10^5$),分别表示门的数量、你的攻击值 $x$ 和 Slavik 的修理值 $y$。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^5$),表示每扇门的初始耐久度。

输出格式

输出一个整数,表示在你和 Slavik 都采取最优策略的情况下,最终耐久度为 $0$ 的门的数量。

说明/提示

关于最优策略的进一步说明将不予解答。 由 ChatGPT 4.1 翻译