loj#P4016. 「eJOI2023」Team Building
「eJOI2023」Team Building
题目描述
本题译自 eJOI2023 Problem F. Team Building
你想要组建一个由 名程序员组成的团队。你已经考察了这些程序员,并确定了第 个人的技能水平,用非负整数 表示。你意识到,真正重要的是你雇佣他们的顺序。
每个程序员还有两个额外的整数值特征:工作效率和动力,这两个值在他们刚加入时都是 ,但在招聘新团队成员后可以增加。当雇佣一名新程序员时,以下事件将按给定顺序发生:
- 新程序员加入团队,工作效率和动力初始为 。
- 每个之前雇佣的程序员的工作效率将加上他们自己的动力值。
- 每个之前雇佣的程序员的动力将加上新雇员的技能水平。
团队的实力由最后所有团队成员的工作效率之和决定。你的目标是计算出通过优化招聘顺序可实现的最大团队实力。
例如,如果你按照这个顺序 雇佣技能水平为 的程序员,他们的值将随着招聘过程的进行而发生如下变化:
事件 | 工作效率 | 动力 |
---|---|---|
雇佣技能为 0 的人 | 0 | 0 |
雇佣技能为 2 的人 | 0 0 | 0 0 |
更新工作效率 | 0 0 | 0 0 |
更新动力 | 0 0 | 2 0 |
雇佣技能为 2 的人 | 0 0 0 | 2 0 0 |
更新工作效率 | 2 0 0 | 2 0 0 |
更新动力 | 2 0 0 | 4 2 0 |
雇佣技能为 3 的人 | 2 0 0 0 | 4 2 0 0 |
更新工作效率 | 6 2 0 0 | 4 2 0 0 |
更新动力 | 6 2 0 0 | 7 5 3 0 |
团队实力将为 。然而,如果你以 的顺序雇佣程序员,你将实现团队实力为 。
新雇员技能 | 工作效率 | 动力 |
---|---|---|
2 | 0 | 0 |
2 | 0 0 | 2 0 |
3 | 2 0 0 | 5 3 0 |
0 | 7 3 0 0 | 5 3 0 0 |
此外,在接下来的 天里,你将收到关于某些程序员技能水平变化的通知。在第 天后,程序员 的技能水平将被更新为 (可能与之前的值相同)。在接下来的日子中程序员 的技能值就一直为 ,直到他再次被更新。
你的目标是对于每个 ,计算当第 天结束时,通过雇佣所有 名程序员,在当时评估的技能水平下可实现的最大团队实力。
输入格式
第一行包含两个整数 和 。
第二行包含 个整数,表示 。
接下来的 行,第 行包含两个整数: 和 。
输出格式
输出 行,每行一个整数。表示第 天结束后可实现的最大团队实力。
4 2
2 0 2 3
2 4
4 0
10
14
12
初始状态的招聘顺序如题目描述所示。第一天后,技能水平将被更新为 ,最大可达团队实力变为 ,第二天后,技能水平将被进一步调整为 。
数据范围与提示
对于所有输入数据,满足:
详细子任务附加限制及分值如下表所示。
子任务 | 附加限制 | 分值 |
---|---|---|
技能水平永远不超过 | ||
技能水平永远不超过 | ||
每次技能水平变化不超过 | ||
无附加限制 |