#lg15127. [ROIR 2026] 比赛结果

[ROIR 2026] 比赛结果

[AdditionalFile5564.zip](file://AdditionalFile5564.zip?type=additional_file)

#5564. 「ROIR 2026 Day1」比赛结果

标签: 传统 | 时间限制: 1000 ms | 内存限制: 512 MiB |

题目描述

译自 ROI Regional 2026 Day1 T1. Итоги олимпиады

「卡皮巴拉编码」信息学俱乐部的学生们参加了一场编程奥运会。第 ii 个学生在比赛中获得了 aia_i 分。

为了鼓励大家,俱乐部负责人亚历山大·伊戈列维奇决定发放糖果。具体的发放规则如下:

  • 对于任意两个学生 iijj,如果 ai>aja_i > a_j,则给第 ii 个学生发放 aiaja_i - a_j 颗糖果。

请帮助负责人计算,他总共需要准备多少颗糖果。

输入格式

第一行一个整数 nn (1n500000)(1 \leq n \leq 500000),表示参加比赛的学生人数。

第二行 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n (0ai107)(0 \leq a_i \leq 10^7),表示每个学生的得分。

输出格式

输出一个整数,表示总共需要准备的糖果数量。

注意:答案可能非常大(超过 32 位整数范围),请务必使用 64 位整数类型(如 C++ 的 long long、Pascal 的 int64、Java/C# 的 long)。

样例 1

输入

5
1 2 3 4 5

输出

20

第一个学生不得糖果;第二个学生得 11 颗;第三个学生得 1+2=31+2=3 颗;第四个学生得 1+2+3=61+2+3=6 颗;第五个学生得 1+2+3+4=101+2+3+4=10 颗。

样例 2

输入

10
0 0 0 0 0 10000000 0 0 0 0

输出

90000000

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
11 1515 1n10001 \leq n \leq 1000
22 55 所有 aia_i 均相等
33 55 任意 iji \neq jaiaja_i \neq a_j,且 1ain1 \leq a_i \leq n
44 1010 0ai10 \leq a_i \leq 1
55 1515 0ai1000 \leq a_i \leq 100 44
66 1515 aia_i 的不同取值不超过两种 2,42, 4
77 3535 无附加限制 161\sim 6