#P1610D. Not Quite Lee

    ID: 216 Type: RemoteJudge 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>combinatoricsdpmathnumber theory*2000

Not Quite Lee

No submission language available for this problem.

Description

Lee couldn't sleep lately, because he had nightmares. In one of his nightmares (which was about an unbalanced global round), he decided to fight back and propose a problem below (which you should solve) to balance the round, hopefully setting him free from the nightmares.

A non-empty array b1,b2,,bmb_1, b_2, \ldots, b_m is called good, if there exist mm integer sequences which satisfy the following properties:

  • The ii-th sequence consists of bib_i consecutive integers (for example if bi=3b_i = 3 then the ii-th sequence can be (1,0,1)(-1, 0, 1) or (5,4,3)(-5, -4, -3) but not (0,1,1)(0, -1, 1) or (1,2,3,4)(1, 2, 3, 4)).
  • Assuming the sum of integers in the ii-th sequence is sumisum_i, we want sum1+sum2++summsum_1 + sum_2 + \ldots + sum_m to be equal to 00.

You are given an array a1,a2,,ana_1, a_2, \ldots, a_n. It has 2n12^n - 1 nonempty subsequences. Find how many of them are good.

As this number can be very large, output it modulo 109+710^9 + 7.

An array cc is a subsequence of an array dd if cc can be obtained from dd by deletion of several (possibly, zero or all) elements.

The first line contains a single integer nn (2n21052 \le n \le 2 \cdot 10^5) — the size of array aa.

The second line contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n (1ai1091 \le a_i \le 10^9) — elements of the array.

Print a single integer — the number of nonempty good subsequences of aa, modulo 109+710^9 + 7.

Input

The first line contains a single integer nn (2n21052 \le n \le 2 \cdot 10^5) — the size of array aa.

The second line contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n (1ai1091 \le a_i \le 10^9) — elements of the array.

Output

Print a single integer — the number of nonempty good subsequences of aa, modulo 109+710^9 + 7.

Samples

Sample Input 1

4
2 2 4 7

Sample Output 1

10

Sample Input 2

10
12391240 103904 1000000000 4142834 12039 142035823 1032840 49932183 230194823 984293123

Sample Output 2

996

Note

For the first test, two examples of good subsequences are [2,7][2, 7] and [2,2,4,7][2, 2, 4, 7]:

For b=[2,7]b = [2, 7] we can use (3,4)(-3, -4) as the first sequence and (2,1,,4)(-2, -1, \ldots, 4) as the second. Note that subsequence [2,7][2, 7] appears twice in [2,2,4,7][2, 2, 4, 7], so we have to count it twice.

Green circles denote (3,4)(-3, -4) and orange squares denote (2,1,,4)(-2, -1, \ldots, 4).

For b=[2,2,4,7]b = [2, 2, 4, 7] the following sequences would satisfy the properties: (1,0)(-1, 0), (3,2)(-3, -2), (0,1,2,3)(0, 1, 2, 3) and (3,2,,3)(-3, -2, \ldots, 3)