#J1117. 子数组不同元素数目的平方和

子数组不同元素数目的平方和

题目描述

给你一个长度为 nn 的数组 a1,a2,...,ana_1,a_2,...,a_n
定义 aa 的一个子数组的不同计数值如下:

  • a[i...j]a[i...j] 表示 aa 中所有下标在 iijj 范围内的元素构成的子数组(满足 1ijn1\le i\le j\le n),那么我们称子数组 a[i...j]a[i...j] 中不同值的数目为 a[i...j]a[i...j] 的不同计数。

请你输出 aa 中所有子数组的 不同计数 的平方和。
由于答案可能会很大,请你输出答案对 109+710^9+7 取余的结果。
子数组指的是一个数组里面一段连续非空的元素序列。

输入格式

第一行一个整数 nn
第二行 nn 个整数 a1,a2,...,ana_1,a_2,...,a_n

输出格式

一行一个整数,表示答案对 109+710^9+7 取模的结果。

输入输出样例 #1

输入 #1

3
1 2 1

输出 #1

15

输入输出样例 #2

输入 #2

2
2 2

输出 #2

3

说明/提示

1n100,1ai1001\le n\le 100,1\le a_i\le 100