CF639D Bear and Contribution
题目描述
Codeforces 是一个非常棒的平台,其中有一个功能可以展示用户对社区的贡献度。每位注册用户都有一个贡献值——这是一个整数,不一定为正数。共有 $n$ 位注册用户,第 $i$ 位用户的贡献值为 $t_i$。
Limak 是一只小北极熊,他刚刚接触竞赛编程,甚至还没有自己的 Codeforces 账号,但他可以为已有的博客和评论点赞。我们假设每位注册用户都有无限多的博客和评论。
- Limak 每花 $b$ 分钟可以阅读并点赞一篇博客,该博客作者的贡献值将增加 $5$。
- Limak 每花 $c$ 分钟可以阅读并点赞一条评论,该评论作者的贡献值将增加 $1$。
注意,Limak 阅读博客的速度可能比阅读评论快。
Limak 喜欢平局。他觉得看到至少 $k$ 位注册用户的贡献值完全相同会很有趣。为了实现这一目标,他打算通过阅读和点赞花费一些时间。操作结束后,应该存在某个整数 $x$,使得至少有 $k$ 位注册用户的贡献值恰好等于 $x$。
Limak 至少需要花费多少分钟才能达到他的目标?
输入格式
第一行包含四个整数 $n$、$k$、$b$ 和 $c$($2\le k\le n\le 200000, 1\le b,c\le 1000$)——注册用户数、要求的贡献值相同用户的最小数量、阅读并点赞一篇博客所需的时间、阅读并点赞一条评论所需的时间。
第二行包含 $n$ 个整数 $t_1,t_2,\ldots,t_n$($|t_i|\le 10^9$),其中 $t_i$ 表示第 $i$ 位用户的贡献值。
输出格式
输出 Limak 至少需要花费多少分钟才能使至少 $k$ 位注册用户的贡献值相同。
说明/提示
在第一个样例中,有 $4$ 位注册用户,Limak 想让至少 $3$ 位用户贡献值相同。Limak 的最优操作如下:
- 他花 $100$ 分钟为第 $4$ 位用户阅读并点赞一篇博客,将他的贡献值从 $1$ 提高到 $6$。
- 然后他花 $4\cdot 30=120$ 分钟为第 $2$ 位用户阅读并点赞四条评论,将其贡献值从 $2$ 提高到 $6$(贡献值被提升 $4$ 次,每次加 $1$)。
这样,Limak 总共花费 $100+4\cdot 30=220$ 分钟,操作后第 $2$、$3$、$4$ 位用户的贡献值都变为 $6$。
在第二个样例中,Limak 阅读一篇博客需要 $30$ 分钟,阅读一条评论需要 $100$ 分钟。这一次,他可以通过 $100+3\cdot 30=190$ 分钟,使 $3$ 位用户的贡献值变为 $12$:
- 花 $2\cdot 30=60$ 分钟为第 $1$ 位用户阅读并点赞两篇博客,将其贡献值从 $2$ 提高到 $12$。
- 为第 $3$ 位用户阅读并点赞一篇博客和一条评论,共花 $30+100$ 分钟,将其贡献值从 $6$ 提高到 $6+5+1=12$。
由 ChatGPT 5 翻译