Robert s-a plictisit de tricoul său alb, așa că s-a hotărât să îl coloreze în culoarea sa preferată, albastru. El a primit de la prietenul său, Georgian, mai multe pastile de N
nuanțe diferite de albastru, având acum pastile din cea de-a i
-a nuanță de albastru (pentru i
de la 1
la N
). Pentru a colora tricoul, Robert va pune tricoul în mașina de spălat alături de diverse pastile.
Plictisit de nuanțele obișnuite de albastru, el va crea o nouă nuanță luând pastile ( pastile din nuanța inițială i
). Robert va lua cel puțin o pastilă din fiecare nuanță inițială, și cel mult pastile din nuanța i
. De asemenea, el poate folosi doar un număr întreg de pastile din fiecare tip. Două nuanțe și vor fi considerate la fel dacă și numai dacă
Acum, Robert se întreabă câte nuanțe noi diferite de albastru poate crea. Știind că acest număr poate fi foarte mare, el se mulțumește și cu răspunsul modulo 1 000 000 007.
Date de intrare
Pe prima linie se găsește un număr întreg N
, reprezentând numărul de nuanțe distincte.
Pe cea de-a doua linie se găsesc N
numere întregi , reprezentând numărul de pastile disponibile din cea de-a i
-a nuanță inițială.
Date de ieșire
Se va afișa o singură linie, ce conține un singur număr întreg, reprezentând numărul de nuanțe diferite ce se pot forma modulo 1 000 000 007.
Restricții și precizări
- Vom nota și .
1 ≤ N ≤ 200 000
Subtask 1 (2 puncte)
Subtask 2 (6 puncte)
Subtask 3 (4 puncte)
Subtask 4 (16 puncte)
Subtask 5 (11 puncte)
Subtask 6 (7 puncte)
Subtask 7 (15 puncte)
Subtask 8 (10 puncte)
Subtask 9 (8 puncte)
Subtask 10 (21 puncte)
- Fără restricții suplimentare.
Exemple
stdin
3
2 3 2
stdout
11
stdin
4
7 7 7 7
stdout
2303
stdin
7
15 8 19 7 15 8 19
stdout
36191027
stdin
2
31124 150719
stdout
851838928
Explicații
Pentru primul exemplu, cele 11
nuanțe posibile sunt:
- ⟨1, 1, 1⟩ (la fel cu ⟨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⟩