CF613B Skills
题目描述
Lesha 玩最近发布的传奇游戏新版本——hacknet。在这个版本中引入了角色技能机制。现在,每个玩家角色恰好有 $n$ 个技能。每个技能用一个非负整数 $a_{i}$ 表示——即当前的技能等级。所有技能都有相同的最大等级 $A$。
除技能外,还加入了所有玩家的全球排名。玩家的排名根据所谓的“战力”(Force)来确定。玩家的战力是以下两部分的总和:
- 角色已满级(即 $a_{i}=A$)的技能数乘以系数 $c_{f}$。
- 所有技能的最小技能值($min\ a_{i}$)乘以系数 $c_{m}$。
现在 Lesha 拥有 $m$ 个 hacknetian 货币单位,并打算用来提升技能。每个货币单位可以将任意一个技能提升 $1$(前提是尚未达到 $A$)。请帮助他花费这些货币单位,以获得可以达到的最大战力。
输入格式
输入的第一行包含五个用空格分隔的整数 $n$、$A$、$c_{f}$、$c_{m}$ 和 $m$($1 \leq n \leq 100000$,$1 \leq A \leq 10^{9}$,$0 \leq c_{f},c_{m} \leq 1000$,$0 \leq m \leq 10^{15}$)。
第二行包含恰好 $n$ 个整数 $a_{i}$($0 \leq a_{i} \leq A$),用空格分隔,表示各项技能当前的等级。
输出格式
第一行输出使用不超过 $m$ 个货币单位后,角色可以达到的最大战力值。
第二行输出 $n$ 个整数 $a'_{i}$($a_{i} \leq a'_{i} \leq A$),表示为了达到指定战力值所需的技能等级。数值之间用空格分隔。
说明/提示
在第一个样例中,最优策略是将第二项技能升到最大值,其余两项各提升 $1$。
在第二个样例中,应将所有技能提升到最大值。
由 ChatGPT 5 翻译