区间Mex(简单版本)
题号:NC288951
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

\hspace{15pt}本题为问题的简单版本,两题的区别在于,本题您只需要回答一次询问即可,且本题没有修改操作。

\hspace{15pt}对于给定的由 n 个整数构成的排列 \{a_1, a_2, \dots, a_n\},我们定义 \operatorname{mex}(i,j) 为连续子数组 \{a_i, a_{i+1}, \dots, a_j\} 中最小没有出现过的正整数(其中,1 \leqq i \leqq j \leqq n)。
\hspace{15pt}t(i,j) = (j - i + 1) \times \operatorname{mex}(i,j),求解:

\displaystyle F(a_1,\dots,a_n)=\sum\limits_{i=1}^{n}\sum\limits_{j=i}^{n} 2^{t(i,j)} \times t(i,j)

\hspace{15pt}由于答案可能很大,请将答案对 998\,244\,353 取模后输出。

【名词解释】
\hspace{15pt}长度为 n 的排列是由 1 \sim nn 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如,\{2,3,1,5,4\} 是一个长度为 5 的排列,而 \{1,2,2\}\{1,3,4\} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述:

\hspace{15pt}第一行输入一个整数 n\left(1\leq n\leq 2\times 10^5\right),表示排列的长度。 
\hspace{15pt}第二行输入 n互不相同的整数 a_1,a_2,\dots,a_n\left(1\leq a_i\leq n\right),表示给定的排列。

输出描述:

\hspace{15pt}输出一个整数,表示 F(a)998\,244\,353 取模后的结果。
示例1

输入

复制
3
2 3 1

输出

复制
49236

说明

\hspace{15pt}在这个样例中,ij 一共有六种不同的取值方法: 
\hspace{23pt}\bullet\,i=1j=1,所求式子为 2^1 \times 1=2
\hspace{23pt}\bullet\,i=1j=2,所求式子为 2^2 \times 2=8
\hspace{23pt}\bullet\,i=1j=3,所求式子为 2^{12} \times 12=49152
\hspace{23pt}\bullet\,i=2j=2,所求式子为 2^1 \times 1=2
\hspace{23pt}\bullet\,i=2j=3,所求式子为 2^4 \times 4=64
\hspace{23pt}\bullet\,i=3j=3,所求式子为 2^2 \times 2=8
\hspace{15pt}综上,计算全部六种情况之和,答案为 2+8+49152+2+64+8=49236
示例2

输入

复制
5
1 2 3 4 5

输出

复制
289456632