AT_arc122_a [ARC122A] Many Formulae

Description

[problemUrl]: https://atcoder.jp/contests/arc122/tasks/arc122_a 長さ $ N $ の非負整数列 $ A_1,A_2,\cdots,A_N $ が与えられます. この数列の隣接する $ 2 $ 項の間に `+` または `-` を入れて,一つの式を作ることを考えます. 式を作る方法は $ 2^{N-1} $ 通りありますが,この中でも以下の条件を満たす式を,**良い式**と呼ぶことにします. - `-` が $ 2 $ 回以上連続で登場しない. 全ての良い式の値を足し合わせた値を求めて下さい. なお,この値はかならず非負整数となることが証明できます. そこで,この値を $ 10^9+7 $ で割った余りを出力してください.

Input Format

入力は以下の形式で標準入力から与えられる. > $ N $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $

Output Format

答えを $ 10^9+7 $ で割った余りを出力せよ.

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 10^5 $ - $ 1\ \leq\ A_i\ \leq\ 10^9 $ - 入力される値はすべて整数である ### Sample Explanation 1 以下の $ 3 $ 通りの良い式が考えられます. - $ 3+1+5=9 $ - $ 3+1-5=-1 $ - $ 3-1+5=7 $ $ 3-1-5 $ は `-` が $ 2 $ 回以上連続で登場するため,良い式ではありません. よって,答えは $ 9+(-1)+7=15 $ となります. ### Sample Explanation 2 以下の $ 5 $ 通りの良い式が考えられます. - $ 1+1+1+1=4 $ - $ 1+1+1-1=2 $ - $ 1+1-1+1=2 $ - $ 1-1+1+1=2 $ - $ 1-1+1-1=0 $ よって答えは $ 4+2+2+2+0=10 $ となります. ### Sample Explanation 3 答えを $ 10^9+7 $ で割った余りを出力してください.