CF1394A Boboniu Chats with Du

题目描述

你用过聊天应用 QQ 吗?在 QQ 的群聊中,管理员可以将某个用户禁言若干天。 在 Boboniu 的群聊中,有一个叫 Du Yi 的人每天都喜欢取笑 Boboniu。 Du 将在群聊中发言 $n$ 天。在第 $i$ 天: - 如果 Du 能发言,他会以有趣度 $a_i$ 取笑 Boboniu。但之后,是否会被禁言取决于 Boboniu 的心情。 - 否则,Du 什么也不会做。 Boboniu 的心情是一个常数 $m$。在第 $i$ 天: - 如果 Du 能发言且 $a_i > m$,那么 Boboniu 会生气,并将他禁言 $d$ 天,这意味着 Du 在第 $i+1, i+2, \cdots, \min(i+d, n)$ 天都不能发言。 - 否则,Boboniu 不会做任何事。 总有趣度是 Du 能发言的那些天的有趣度之和。 Du 想让你求出所有 $a$ 的排列中,总有趣度的最大值。

输入格式

第一行包含三个整数 $n$、$d$ 和 $m$($1 \le d \le n \le 10^5, 0 \le m \le 10^9$)。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$)。

输出格式

输出一个整数:所有 $a$ 的排列中,总有趣度的最大值。

说明/提示

在第一个样例中,你可以将 $a' = [15, 5, 8, 10, 23]$。那么 Du 的发言记录如下: 1. 以有趣度 $15$ 取笑 Boboniu。 2. 被禁言。 3. 被禁言。 4. 以有趣度 $10$ 取笑 Boboniu。 5. 以有趣度 $23$ 取笑 Boboniu。 因此,总有趣度为 $48$。 由 ChatGPT 4.1 翻译