P12510 [集训队互测 2024] 游戏
题目描述
小 $\rm{A}$ 和小 $\rm{B}$ 喜欢玩游戏。
他们在数轴上玩游戏,数轴上的一些位置放着物品,最初他们有一个参数 $k$,**保证 $k=0/1$**。
接下来小 $\rm{A}$ 会选定一个位置 $x$,那么小 $\rm{B}$ 的位置就为 $x+k$,两个人会轮流取走物品,由小 $\rm{A}$ 先手。
对于当前操作的玩家,他会取走当前剩余物品中离自己的位置距离最近的一个物品,如果有两个物品距离相同,则他会取走位置更小的那个物品。
位置 $a$ 和 $b$ 的距离定义为 $|a-b|$。
最后,在所有物品都被取走后,小 $\rm{A}$ 想知道,他手上的物品位置的总和是多少。
但是,由于他们非常的闲,他们会进行 $q$ 次游戏,每次游戏结束后所有物品都会恢复原位置,对于每次游戏小 $\rm{A}$ 都想知道对于当前的位置 $x$,小 $\rm{B}$ 的位置 $x+k$,游戏完后小 $\rm{A}$ 手上的物品位置的总和。
输入格式
第一行三个数 $n,q,k$,表示数轴上存在 $n$ 个区间的物品,小 $\rm{A}$ 和小 $\rm{B}$ 的游戏次数和初始选定的参数。
接下来 $n$ 行,每行两个数 $l_i,r_i$ 表示在区间 $[l_i,r_i]$ 中的每个位置都有一个物品。
接下来 $q$ 行,每行一个数 $x$,表示此轮游戏小 $\rm{A}$ 的参数为 $x$,小 $\rm{B}$ 的参数为 $x+k$。
输出格式
设 $ans_i$ 表示第 $i$ 次询问的答案,那么输出一个整数表示 $\oplus_{i=1}^{q}i \times ans_i$。
说明/提示
### 样例 1 解释
对于 $x=8$ 的询问。
小 $\rm{A}$ 在结束时手上的物品的位置为 $8,7,5,4$。
小 $\rm{B}$ 在结束时手上的物品的位置为 $10,11,13$。
因此结束时小 $\rm{A}$ 手上的物品位置的总和为 $8+7+5+4 = 24$。
对于 $x=6$ 的询问,答案为 $32$。
### 数据范围
对于所有数据,保证:$1 \le n \le 5000$,$1 \le q \le 2 \times 10^6$,$1 \le x \le 5 \times 10^6$,$1 \le l_i \le r_i \le 5 \times 10^6$,$k=0/1$,$\forall i \in [1,n-1],r_i < l_{i+1}$。
subtask 1($15$ 分):$q \le 2000$;
subtask 2($25$ 分):$k=0$;
subtask 3($20$ 分):$k=1,l_i = r_i$;
subtask 4($40$ 分):无。