Se dă un șir de N perechi de numere naturale (di,vi), pentru i de la 1 la N.
Un subșir de indici 1≤i1<i2<⋯<ik≤N se numește șmecher dacă pentru oricare doi indici consecutivi ip și ip+1 (pentru orice 1≤p<k) din acest subșir, diferența ip+1−ip este divizibilă cu min(dip,dip+1).
Cerință
Să se determine suma produselor vi1×vi2×⋯×vik pentru toate subșirurile șmechere nevide, modulo 109+7.
Date de intrare
Fișierul de intrare aquilla.in conține pe prima linie numărul natural N. Pe a doua linie se află N numere naturale d1,d2,…,dN, separate prin câte un spațiu. Pe a treia linie se află N numere naturale v1,v2,…,vN, separate prin câte un spațiu.
Date de ieșire
Fișierul de ieșire aquilla.out va conține pe o singură linie un număr natural, reprezentând suma produselor tuturor subșirurilor șmechere nevide, modulo 109+7.
Restricții și precizări
- 1≤N≤200 000;
- 1≤di,vi≤1 000 000 000;
- Tribunele Aquilla aprobă această problemă.
| # |
Punctaj |
Restricții |
| 1 |
6 |
N≤20 |
| 2 |
13 |
N≤2 000 |
| 3 |
7 |
N≤200 000 și di=1 pentru orice 1≤i≤N |
| 4 |
7 |
N≤200 000 și 1≤di≤2 pentru orice 1≤i≤N |
| 5 |
14 |
N≤200 000 și 1≤di≤200 pentru orice 1≤i≤N |
| 6 |
12 |
N≤100 000 și șirul d este crescător |
| 7 |
22 |
N≤100 000 |
| 8 |
19 |
Fără alte restricții |
Exemplu
aquilla.in
3
2 3 2
1 10 100
aquilla.out
211
Explicații
Avem N=3 perechi: (2,1), (3,10) și (2,100). Să analizăm toate subșirurile de indici posibile și nevide:
(1): Valid prin definiție (un singur element). Produsul este v1=1.
(2): Valid. Produsul este v2=10.
(3): Valid. Produsul este v3=100.
(1,2): Diferența indicilor este 2−1=1. min(d1,d2)=min(2,3)=2. Deoarece 1 nu este divizibil cu 2, acest subșir nu este șmecher.
(2,3): Diferența indicilor este 3−2=1. min(d2,d3)=min(3,2)=2. Deoarece 1 nu este divizibil cu 2, acest subșir nu este șmecher.
(1,3): Diferența indicilor este 3−1=2. min(d1,d3)=min(2,2)=2. Deoarece 2 este divizibil cu 2, subșirul este șmecher. Produsul este v1⋅v3=1⋅100=100.
(1,2,3): Deoarece perechile adiacente (1,2) și (2,3) nu respectă condiția, subșirul nu este șmecher.
Suma produselor tuturor subșirurilor șmechere este: 1+10+100+100=211. 211(mod109+7)=211.