

Time Limit: 2 sec / Memory Limit: 1024 MiB
配点 : 点
問題文
整数 と 、そして長さ の整数列 が与えられます。
各要素が 以上 以下の整数である整数列がカラフルであるとは、 その整数列の長さ の連続する部分列であって、 から までの整数を 個ずつ含むものが存在することを意味します。
すべての長さ のカラフルな整数列について、その連続する部分列であって に一致するものの個数を数えて、その総和を求めてください。 ただし、答えは非常に大きくなることがあるので、 で割った余りを求めてください。
制約
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
すべての長さ のカラフルな整数列について、その連続する部分列であって に一致するものの個数を数えて、 その総和を で割った余りを出力せよ。
入力例 1Copy
3 2 1 1
出力例 1Copy
9
長さ のカラフルな整数列は、, , , , , の 個です。 これらの整数列の、連続する部分列であって に一致するものの個数は、それぞれ , , , , , 個です。 よって、これらの合計である が答えになります。
入力例 2Copy
4 2 2 1 2
出力例 2Copy
12
入力例 3Copy
7 4 5 1 2 3 1 2
出力例 3Copy
17
入力例 4Copy
5 4 3 1 1 1
出力例 4Copy
0
入力例 5Copy
10 3 5 1 1 2 3 3
出力例 5Copy
1458
入力例 6Copy
25000 400 4 3 7 31 127
出力例 6Copy
923966268
入力例 7Copy
9954 310 12 267 193 278 294 6 63 86 166 157 193 168 43
出力例 7Copy
979180369
Score : points
Problem Statement
You are given integers , and an integer sequence of length .
An integer sequence where each element is between and (inclusive) is said to be colorful when there exists a contiguous subsequence of length of the sequence that contains one occurrence of each integer between and (inclusive).
For every colorful integer sequence of length , count the number of the contiguous subsequences of that sequence which coincide with , then find the sum of all the counts. Here, the answer can be extremely large, so find the sum modulo .
Constraints
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
Output
For every colorful integer sequence of length , count the number of the contiguous subsequences of that sequence which coincide with , then print the sum of all the counts modulo .
Sample Input 1Copy
3 2 1 1
Sample Output 1Copy
9
There are six colorful sequences of length : , , , , and . The numbers of the contiguous subsequences of these sequences that coincide with are , , , , and , respectively. Thus, the answer is their sum, .
Sample Input 2Copy
4 2 2 1 2
Sample Output 2Copy
12
Sample Input 3Copy
7 4 5 1 2 3 1 2
Sample Output 3Copy
17
Sample Input 4Copy
5 4 3 1 1 1
Sample Output 4Copy
0
Sample Input 5Copy
10 3 5 1 1 2 3 3
Sample Output 5Copy
1458
Sample Input 6Copy
25000 400 4 3 7 31 127
Sample Output 6Copy
923966268
Sample Input 7Copy
9954 310 12 267 193 278 294 6 63 86 166 157 193 168 43
Sample Output 7Copy
979180369