「EZEC-14」众数 II

题目背景

dXqwq 是一个不可爱的男孩子。他在 NOI2022 中的众数一题定义了 $10^6$ 个 ``std::deque`` 并成功 MLE。

题目描述

给定一个长度为 $n$ 的序列 $a$,我们通过以下方式构造序列 $b$: - 初始时 $b$ 为空序列。 - 对于 $i=1,2,\cdots,n$,我们依次向 $b$ 的尾部插入 $1,2,\cdots,a_i$。 dXqwq 定义一个序列的**最小众数**为所有出现次数最大的数的最小值。例如 $[1,1,4,5,1,4]$ 的最小众数为 $1$,而 $[1,14,5,14,19,19,8,10]$ 的最小众数为 $14$。 你需要求出 $b$ 的每个子区间的**最小众数**的和。由于答案可能很大,你只需要输出它对 $998244353$ 取模后的值。

输入输出格式

输入格式


第一行输入一个整数 $n$。 第二行输入 $n$ 个整数 $a_i$。

输出格式


输出一个整数,代表 $b$ 的每个子区间的最小众数的和对 $998244353$ 取模的值。

输入输出样例

输入样例 #1

3
1 2 3

输出样例 #1

28

输入样例 #2

9
9 9 8 2 4 4 3 5 3

输出样例 #2

1912

说明

**【样例解释】** 在第一个样例中,$b=[1,1,2,1,2,3]$。 有 $15$ 个区间的最小众数为 $1$,$5$ 个区间的最小众数为 $2$,$1$ 个区间的最小众数为 $3$,因此答案为 $15\times 1+5\times 2+1\times 3=28$。 **【提示】** 开 $10^6$ 个 ``std::deque`` 在空间限制为 512MB 时一定会 MLE。 **【数据范围】** **本题采用捆绑测试。** - Subtask 1(10 pts):$\sum a_i\leq 100$。 - Subtask 2(20 pts):$\sum a_i\leq 10^3$。 - Subtask 3(20 pts):$\sum a_i\leq 10^6$。 - Subtask 4(10 pts):$n\leq 2$。 - Subtask 5(20 pts):$n\leq 10^3$。 - Subtask 6(10 pts):$a_i\leq 2$。 - Subtask 7(10 pts):无特殊限制。 对于 $100\%$ 的数据,$1\leq n\leq 10^6$,$1\leq a_i\leq 10^6$。