#Z3. Doors Breaking and Repairing

Doors Breaking and Repairing

CF1102C Doors Breaking and Repairing

题目描述

你是一名警察,正在和 Slavik 玩一个回合制游戏。每个回合分为两个阶段:第一阶段由你行动,第二阶段由 Slavik 行动。

nn 扇门,第 ii 扇门的初始耐久度为 aia_i

在你的回合,你可以尝试破坏一扇门。如果你选择第 ii 扇门,当前耐久度为 bib_i,则你可以将其耐久度减少到 max(0,bix)max(0, b_i - x)(其中 xx 已知)。

在 Slavik 的回合,他会尝试修理一扇门。如果他选择第 ii 扇门,当前耐久度为 bib_i,则他可以将其耐久度增加到 bi+yb_i + y(其中 yy 已知)。Slavik 不能修理当前耐久度为 00 的门。

游戏持续 1010010^{100} 个回合。如果某一方无法进行操作,则跳过该回合。

你的目标是在游戏结束时,使耐久度为 00 的门的数量最大化。你可以假设 Slavik 会尽量让耐久度为 00 的门的数量最少。如果你们都采取最优策略,最后耐久度为 00 的门的数量是多少?

输入格式

输入的第一行包含三个整数 nnxxyy1n1001 \le n \le 1001x,y1051 \le x, y \le 10^5),分别表示门的数量、你的攻击值 xx 和 Slavik 的修理值 yy

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1051 \le a_i \le 10^5),表示每扇门的初始耐久度。

输出格式

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

6 3 2
2 3 1 3 4 2
6
5 3 3
1 2 4 2 3
2
5 5 6
1 2 6 10 3
2

说明/提示

关于最优策略的进一步说明将不予解答。

由 ChatGPT 4.1 翻译