I. 可微波子序列
每个测试点时间限制:1 秒
每个测试点内存限制:1024 兆字节
给定一个包含 N 个整数的数组:[A1,A2,…,AN]。
子序列可以通过删除数组中零个或多个元素(不改变剩余元素的顺序)得到。例如,[2,1,2]、[3,3]、[1] 和 [3,2,1,3,2] 都是数组 [3,2,1,3,2] 的子序列,而 [1,2,3] 不是。
如果一个子序列至多包含两种不同的数值,且每个元素与相邻元素不同,则称该子序列是可微波的。例如,[2,1,2]、[3,2,3,2] 和 [1] 是可微波的,而 [3,3] 和 [3,2,1,3,2] 不是。
定义函数 f(x,y) 为数组 A 的最长可微波子序列的长度,且该子序列中的每个元素只能是 x 或 y。
求对于所有 1≤x<y≤M 的 f(x,y) 之和。
输入
第一行包含两个整数 N、M(1≤N,M≤300000)。
第二行包含 N 个整数 Ai(1≤Ai≤M)。
输出
输出一个整数,表示所有 f(x,y) 的总和。
样例
输入
5 4
3 2 1 3 2
输出
13
输入
3 3
1 1 1
输出
2
样例解释
对于样例 #1:
- f(1,2)=3,子序列 [2,1,2](删除 A1 和 A4)。
- f(1,3)=3,子序列 [3,1,3](删除 A2 和 A5)。
- f(2,3)=4,子序列 [3,2,3,2](删除 A3)。
- f(1,4)、f(2,4)、f(3,4) 均为 1。
对于样例 #2:
f(1,2) 和 f(1,3) 均为 1,f(2,3)=0。