難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

XOR = OR

作成者 mackerel38

テスター yukimy32

難易度(作成者設定) Lv.5

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
512 MiB

(2026/10/27 23:33) テストケースに誤りがありましたので修正し、リジャッジを行いました。

問題文

正整数 NN と長さ NN の非負整数列 AA が与えられる。

次の条件を満たす整数の組 (l,r)(l,r) の個数を求めよ。

  • 1≤l≤r≤N1 \le l \le r \le N
  • Al⊕Al+1⊕⋯⊕Ar=Al∨Al+1∨⋯∨ArA_l \oplus A_{l+1} \oplus \dots \oplus A_r = A_l \lor A_{l+1} \lor \dots \lor A_r

ただし、⊕\oplus はビット単位 XOR、∨\lor はビット単位 OR を表す。

制約

  • 入力はすべて整数である。
  • 1≤N≤2×1051 \le N \le 2 \times 10^5
  • 0≤Ai<2300 \le A_i < 2^{30}

入力

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

NN A1A_1 A2A_2 …\dots ANA_N

出力

答えを出力せよ。

サンプル

サンプル 1

入力

5
1 2 3 1 2

出力

8