AlgoMooc
← 返回题库

P2656. 分奖金

中等通过率 43% · 提交 788 · 通过 342
单调栈模拟

小慕最近在公司负责一个项目,为了激励团队成员,他决定通过一个游戏来分配项目奖金。 按照团队成员的入职顺序,每个人随机抽取一个数字。按顺序往后看,遇到第一个数字比自己大的同事,那么前面的同事就可以获得“距离×数字差值”的奖金。如果后面没有比自己数字大的同事,就给自己分配自己抽到的数字作为奖金。 例如,按入职顺序抽到的数字是:2,10,3。那么第2个同事的数字10比第1个同事的数字2大,所以第1个同事可以获得1×(10-2)=8。第2个同事后面没有比他数字更大的同事,所以他获得自己抽到的数字10作为奖金。第3个同事是最后一个,后面也没有比他更大数字的同事,所以他得到的奖金是3。 请帮小慕计算一下每位团队成员最终分到的奖金是多少。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行n表示员工数量 第二是每位员工分配的随机数字

输出描述

最终每位员工分到的奖金数量 注:随机数字不重复,员工数量范围1~10000,随机数范围1~100000

示例

示例 1

输入

3
2 10 3

输出

8 10 3

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。