100 atcoder#ABC209C. [ABC209C] Not Equal

[ABC209C] Not Equal

Score : 300300 points

Problem Statement

You are given a sequence CC of NN integers. Find the number of sequences AA of NN integers satisfying all of the following conditions.

  • 1AiCi(1iN)1 \leq A_i \leq C_i\, (1 \leq i \leq N)
  • AiAj(1i<jN)A_i \neq A_j\, (1 \leq i < j \leq N)

Since the count may be enormous, print it modulo (109+7)(10^9+7).

Constraints

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1Ci1091 \leq C_i \leq 10^9
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN

C1C_1 C2C_2 \ldots CNC_N

Output

Print the number of sequences AA of NN integers satisfying all of the following conditions, modulo (109+7)(10^9+7).

2
1 3
2

We have two sequences AA satisfying all of the conditions: (1,2)(1,2) and (1,3)(1,3). On the other hand, A=(1,1)A=(1,1), for example, does not satisfy the second condition.

4
3 3 4 4
12
2
1 1
0

We have no sequences AA satisfying all of the conditions, so we should print 00.

10
999999917 999999914 999999923 999999985 999999907 999999965 999999914 999999908 999999951 999999979
405924645

Be sure to print the count modulo (109+7)(10^9+7).