A74561.博弈

提高+/省选-

官方

通过率:0%

时间限制:1.50s

内存限制:256MB

题目描述

Alice 和 Bob 在进行一场博弈游戏,现在桌上有 nn 盘饼干,第 ii 盘饼干有 aia_i 个,他们两轮流取走饼干,Alice 先手。

在每个玩家的回合时,玩家将按顺序进行以下两个步骤:

  1. 选择一个非空的盘子,从中取走正数个饼干。
  2. 对于这盘中剩下的饼干,保持不动或者把这些饼干全部合并到另一个非空的盘子。

最终无法操作的人将输掉这场游戏。

现在,有 qq 次询问,每次会询问一个区间 [l,r][l,r] ,请回答区间 [l,r][l,r] 中有多少个子段 Alice 可以获胜。

输入格式

第一行输入一个正整数 nn (1n2×105)(1\leq n\leq 2\times 10^5) ,表示盘子的数量。

第二行输入 nn 个正整数 aia_i (1ai106)(1\leq a_i\leq 10^6) ,表示第 ii 个盘子中饼干的数量。

第三行输入一个正整数 qq (1q2×105)(1\leq q\leq 2\times 10^5) ,表示询问次数。

接下来 qq 行,每行输入两个正整数 l,rl,r (1lrn)(1\leq l \leq r\leq n) ,表示查询的区间范围。

输出格式

输出共 qq 行,对于每个询问,输出一个正整数表示询问区间中 Alice 可以获胜的子段个数。

输入输出样例

  • 输入#1

    4
    1 2 2 4
    5
    1 2
    2 3
    3 4
    1 3
    2 4

    输出#1

    3
    2
    3
    5
    5
首页