3652: 异或区间

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:35 解决:10

题目描述

 代表异或(xor)运算,运算规则为:

  • 当只有一个比特参与异或运算时,0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0(相同为0,相异为1);
  • 当有多个比特参与异或运算时,对应位独立进行异或运算,如 0101⊕1011=1110


  • ;
  • 给定一个长度为 nn的序列a1,a2,…,an,求这个序列有多少个区间 l≤rl≤r 满足以下条件:

    al+al+1+⋯+ar−1+ar=al⊕al+1⊕⋯⊕ar−1⊕ar



输入



  • 第一行:单个整数表示 n
  • 第二行:n 个整数表示 a1,a2,…,an

输出

  • 单个整数表示答案。

样例输入 复制

4
1 2 4 2

样例输出 复制

8

提示

  •  的数据,1≤n≤100
  • 60% 的数据,1≤n≤2000
  • 100% 的数据,1≤n≤300,000,0≤ai<230