atcoder#ARC122A. [ARC122A] Many Formulae

[ARC122A] Many Formulae

题目描述

長さ N N の非負整数列 A1,A2,,AN A_1,A_2,\cdots,A_N が与えられます.

この数列の隣接する 2 2 項の間に + または - を入れて,一つの式を作ることを考えます.

式を作る方法は 2N1 2^{N-1} 通りありますが,この中でも以下の条件を満たす式を,良い式と呼ぶことにします.

  • -2 2 回以上連続で登場しない.

全ての良い式の値を足し合わせた値を求めて下さい. なお,この値はかならず非負整数となることが証明できます. そこで,この値を 109+7 10^9+7 で割った余りを出力してください.

输入格式

入力は以下の形式で標準入力から与えられる.

N N A1 A_1 A2 A_2 \cdots AN A_N

输出格式

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

题目大意

题目描述

给出长度为 N N 的非负整数序列 A1,A2,,AN A_1,A_2,\cdots,A_N

考虑在此序列的相邻 2 2 项之间放置 +- 以创建一个表达式。

2N1 2^{N-1} 创建表达式的方法,但我们会将满足以下条件的表达式称为好表达式

  • - 连续出现不超过 2 2 次。

求所有良好表达式值的总和。

可以证明,这个值始终是一个非负整数。因此,输出此值对 109+7 10^9+7 取模的结果。

输入格式

输入由以下格式给出:

N A1 A2  AN N\ A_1\ A_2\ \cdots\ A_N

3
3 1 5
15
4
1 1 1 1
10
10
866111664 178537096 844917655 218662351 383133839 231371336 353498483 865935868 472381277 579910117
279919144

提示

制約

  • 1  N  105 1\ \leq\ N\ \leq\ 10^5
  • 1  Ai  109 1\ \leq\ A_i\ \leq\ 10^9
  • 入力される値はすべて整数である

Sample Explanation 1

以下の 3 3 通りの良い式が考えられます. - 3+1+5=9 3+1+5=9 - 3+15=1 3+1-5=-1 - 31+5=7 3-1+5=7 315 3-1-5 -2 2 回以上連続で登場するため,良い式ではありません. よって,答えは 9+(1)+7=15 9+(-1)+7=15 となります.

Sample Explanation 2

以下の 5 5 通りの良い式が考えられます. - 1+1+1+1=4 1+1+1+1=4 - 1+1+11=2 1+1+1-1=2 - 1+11+1=2 1+1-1+1=2 - 11+1+1=2 1-1+1+1=2 - 11+11=0 1-1+1-1=0 よって答えは 4+2+2+2+0=10 4+2+2+2+0=10 となります.

Sample Explanation 3

答えを 109+7 10^9+7 で割った余りを出力してください.