AT_past202109_n ジグザグな数列

Description

[problemUrl]: https://atcoder.jp/contests/past202109-open/tasks/past202109_n 以下の $ 2 $ つの条件のうち、いずれかを満たす数列 $ B $ を「ジグザグな数列」と定義します。ここで、$ |B| $ は $ B $ の要素数を表します。 - 長さが $ 2 $ 以上であり、かつ、全ての $ i\ (1\ \leq\ i\ \lt\ |B|) $ について以下が成り立つ。 - $ i $ が奇数なら $ B_i\ \lt\ B_{i+1} $ - $ i $ が偶数なら $ B_i\ \gt\ B_{i+1} $ - 長さが $ 2 $ 以上であり、かつ、全ての $ i\ (1\ \leq\ i\ \lt\ |B|) $ について以下が成り立つ。 - $ i $ が奇数なら $ B_i\ \gt\ B_{i+1} $ - $ i $ が偶数なら $ B_i\ \lt\ B_{i+1} $ 長さ $ N $ の数列 $ A $ が与えられます。$ A $ の空でない(連続するとは限らない)部分列は $ 2^N-1 $ 個ありますが、そのうちジグザグな数列はいくつありますか? 個数を $ (10^9+7) $ で割った余りを出力してください。

Input Format

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

Output Format

$ A $ の空でない部分列のうち、ジグザグな数列であるようなものの個数を $ (10^9+7) $ で割った余りを出力せよ。

Explanation/Hint

### 注意 この問題に対する言及は、2021/10/02 18:00 JST まで禁止されています。言及がなされた場合、賠償が請求される可能性があります。 試験後に総合得点や認定級を公表するのは構いませんが、どの問題が解けたかなどの情報は発信しないようにお願いします。 ### 制約 - $ 2\ \leq\ N\ \leq\ 2\ \times\ 10^5 $ - $ 1\ \leq\ A_i\ \leq\ 10^9 $ - 入力は全て整数である。 ### Sample Explanation 1 $ A $ の空でない部分列は以下の $ 7 $ つです。そのうちジグザグな数列であるようなものは、星印で示された $ 4 $ つです。 - $ (1) $ - $ (3) $ - $ (2) $ - $ (1,3) $ $ \cdots $ ☆ - $ (1,2) $ $ \cdots $ ☆ - $ (3,2) $ $ \cdots $ ☆ - $ (1,3,2) $ $ \cdots $ ☆ ### Sample Explanation 2 $ 2 $ つの部分列は列として同じであっても、取り出す位置が異なる場合は区別されることに注意してください。 このケースにおいて、$ A $ の部分列であってかつジグザグな数列であるようなものは $ (1,3) $ と $ (1,3) $ の $ 2 $ つです。 ### Sample Explanation 3 答えは $ 0 $ になることもあります。