AT_diverta2019_e XOR Partitioning
Description
[problemUrl]: https://atcoder.jp/contests/diverta2019/tasks/diverta2019_e
長さ $ n $ の数列 $ a $ の *美しさ* を $ a_1\ \oplus\ a_2\ \oplus\ \cdots\ \oplus\ a_{n} $ で定義します。ここで $ \oplus $ はビットごとの排他的論理和を表します。
長さ $ N $ の数列 $ A $ が与えられます。 すぬけ君は $ A $ に $ 0 $ 個以上の仕切りを入れて、いくつかの空でない連続する部分列に分割しようとしています。
仕切りを入れる方法は $ 2^{N-1} $ 通りあります。 それらのうち、分割された数列たちの美しさが全て等しくなるものの個数を $ 10^{9}+7 $ で割ったあまりを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_{N} $
Output Format
答えを出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数
- $ 1\ \leq\ N\ \leq\ 5\ \times\ 10^5 $
- $ 0\ \leq\ A_i\