题目描述
Robert 厌倦了自己的白色 T 恤,于是决定把它染成自己最喜欢的颜色:蓝色。
他的朋友 Georgian 给了他若干片蓝色染色药片,共有 N 种不同的蓝色初始色调。对于第 i 种色调,Robert 有 pi 片药片。
为了染色,Robert 会把 T 恤和若干药片一起放入洗衣机中。他想制造一种新的蓝色色调,于是选择整数
a1,a2,…,aN
其中 ai 表示使用第 i 种初始色调的药片数量。要求:
1≤ai≤pi
也就是说,每种初始色调至少使用一片,且不能超过已有数量。
两个选择方案
a1,a2,…,aN
和
b1,b2,…,bN
会被认为染出了同一种新色调,当且仅当:
$$\frac{a_1}{b_1}=\frac{a_2}{b_2}=\cdots=\frac{a_N}{b_N}.$$
请计算 Robert 最多可以制造出多少种不同的新蓝色色调。由于答案可能很大,只需要输出答案对
1000000007
取模后的结果。
输入格式
第一行包含一个整数 N,表示初始色调的数量。
第二行包含 N 个整数:
p1,p2,…,pN
其中 pi 表示第 i 种初始色调已有的药片数量。
输出格式
输出一行一个整数,表示可以形成的不同新色调数量,对 1000000007 取模。
数据范围与约定
记:
$$V_{\min}=\min(p_1,p_2,\ldots,p_N),\qquad
V_{\max}=\max(p_1,p_2,\ldots,p_N).$$
保证:
- 1≤N≤200000;
- 1≤Vmin≤Vmax≤200000。
子任务
| 子任务 |
分值 |
限制 |
| 1 |
2 |
Vmin=1 |
| 2 |
6 |
1≤N,Vmax≤7 |
| 3 |
4 |
1≤N,Vmax≤8 |
| 4 |
16 |
1≤N,Vmax≤100 |
| 5 |
11 |
1≤N,Vmax≤1000 |
| 6 |
7 |
1≤N,Vmax≤5000 |
| 7 |
15 |
1≤N,Vmax≤30000 |
| 8 |
10 |
Vmin=Vmax |
| 9 |
8 |
1≤Vmin≤100 |
| 10 |
21 |
无额外限制 |
样例
样例 1
3
2 3 2
11
样例 2
4
7 7 7 7
2303
样例 3
7
15 8 19 7 15 8 19
36191027
样例 4
2
31124 150719
851838928
样例解释
对于第一个样例,共有 11 种可能的新色调:
- ⟨1,1,1⟩,它与 ⟨2,2,2⟩ 相同;
- ⟨1,1,2⟩;
- ⟨1,2,1⟩;
- ⟨1,2,2⟩;
- ⟨1,3,1⟩;
- ⟨1,3,2⟩;
- ⟨2,1,1⟩;
- ⟨2,1,2⟩;
- ⟨2,2,1⟩;
- ⟨2,3,1⟩;
- ⟨2,3,2⟩。