QOJ.ac

QOJ

حد الوقت: 5.0 s حد الذاكرة: 2048 MB مجموع النقاط: 100

#17320. Босс-раш

الإحصائيات

Франклин играет в новейшую модную видеоигру с элементами тайминга и столкнулся с «босс-рашем»: сложным испытанием, в котором он должен победить $N$ монстров (боссов), чтобы выжить. Его единственная способность, парирование, невероятно мощна, но очень сложна в использовании.

Каждый босс атакует Франклина один раз в $d$ секунд; однако у боссов есть собственная начальная задержка перед началом серии атак, поэтому атаки боссов распределены во времени. Более конкретно, если $f_i$ — это начальная задержка $i$-го босса, то этот босс будет атаковать в моменты времени $f_i, f_i + d, f_i + 2d, \dots$

Чтобы защититься, Франклин может парировать атаку ровно в ту секунду, когда она происходит, мгновенно побеждая босса и прекращая все его последующие атаки. Франклин может парировать только одну атаку за раз: если несколько боссов атакуют его одновременно, он может парировать не более одной из этих атак.

Более того, после парирования атаки Франклин выдыхается и не может парировать снова в течение следующих $w$ секунд. Формально, если Франклин парирует атаку в момент времени $t$, самый ранний момент, когда Франклин может парировать следующую атаку, — это момент $t + w$.

У Франклина много здоровья, и он не беспокоится об атаках боссов, но он хочет закончить бой как можно быстрее. Вычислите минимальное время, которое потребуется Франклину, чтобы победить всех $N$ боссов, если он будет парировать оптимально.

Входные данные

Первая строка входных данных содержит три целых числа, разделенных пробелами: $N$ ($1 \le N \le 3 \cdot 10^5$), $w$ ($1 \le w \le 10^9$) и $d$ ($1 \le d \le 10^9$), где $N$ — количество боссов, $w$ — количество секунд, которое Франклин должен ждать после парирования, прежде чем снова сможет парировать, а $d$ — количество секунд между двумя атаками одного и того же босса.

Следующая строка содержит $N$ целых чисел, разделенных пробелами: $f_i$ ($0 \le f_i < d$), начальная задержка каждого босса в секундах.

Выходные данные

Выведите количество секунд, которое потребуется Франклину, чтобы победить всех $N$ боссов при оптимальном парировании.

Примеры

Входные данные 1

3 4 10
2 3 8

Выходные данные 1

12

Примечание

Первый босс атакует Франклина на 2-й секунде; Франклин мог бы парировать эту атаку, но решает подождать и вместо этого парирует атаку второго босса на 3-й секунде. Теперь он выдохся и не может парировать снова до 7-й секунды.

Третий босс атакует Франклина на 8-й секунде, и Франклин парирует эту атаку. Он снова выдыхается и не может парировать до 12-й секунды: как раз вовремя, чтобы парировать вторую атаку первого босса, что завершает бой.

Входные данные 2

3 4 10
2 3 9

Выходные данные 2

13

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1330EditorialOpenMy Solution for Problem #17320Anonymous2026-03-25 19:16:00View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.