Kevin的疑惑
题号:NC261518
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给出三个整数 l,r(l\leq r),k,请计算:

(l^k+(l+1)^k+\dots +r^k)\mod 2

其中,\text{mod} 代表计算两个数相除后的余数,例如 10\ \text{mod}\ 3=1, 4\ \text{mod}\ 2=0

输入描述:

第一行包含一个整数 T(1\leq T \leq 2\cdot 10^5),表示测试用例的组数。

对于每组测试用例:

仅输入一行,包含三个整数 l,r(1\leq l\leq r\leq 10^9),k(0\leq k\leq 10^9)

输出描述:

对于每组测试用例:
仅输出一行,包含一个整数,表示答案。
示例1

输入

复制
2
1 2 1
2 5 2

输出

复制
1
0