本题目满分 150 分。
题目描述
你有一个 n 项序列 a1,a2,…,an,计算有多少个五元子序列,存在一组 y,u,m 使这个子序列恰为 y,u,m,m,y。
注意两个子序列不同当且仅当存在元素位置不同。
输入格式
第一行有一个正整数 n 表示序列元素数。
第二行有 n 个正整数 a1,a2,…,an 表示这个序列。
输出格式
输出一行一个自然数表示答案。由于子序列可能过多,你只需要求子序列个数除以 232 的余数即可。
样例 #1
样例输入 #1
8
1 2 2 2 4 4 1 2
样例输出 #1
7
提示
【样例解释】
- 令 y=1,u=m=2,可以找到 1 个子序列 [1,2,2,2,1]。
 
- 令 y=1,u=2,m=4,可以找到 3 个子序列 [1,2,4,4,1]。
 
- 令 y=u=2,m=4,可以找到 3 个子序列 [2,2,4,4,2]。
 
【数据范围】
| 子任务编号 | 
n≤ | 
ai≤ | 
特殊性质 | 
分值 | 
| 1 | 
30 | 
 | 
6 | 
| 2 | 
500 | 
8 | 
| 3 | 
2000 | 
10 | 
| 4 | 
2×105 | 
1 | 
4 | 
| 5 | 
30 | 
12 | 
| 6 | 
200 | 
15 | 
| 7 | 
105 | 
a 回文且所有数出现次数 ≤2 | 
5 | 
| 8 | 
3×104 | 
ai 随机均匀生成 | 
21 | 
| 9 | 
105 | 
 | 
27 | 
| 10 | 
2×105 | 
42 | 
对于全部数据,保证 5≤n≤2×105,1≤ai≤2×105。