#3684. 硬币(coin)

硬币(coin)

【题目描述】

你在桌子上画了三个圈,顺时针排成一个环,分别编号为 1, 2, 3。 一开始,你有 NN 枚硬币,全都放在一号圈里面,面值分别是 1,2,3,…,N1, 2, 3, \dots, N。 每次操作,你可以将某个圈里面值最小的硬币,移动到其顺时针的下一个圈里,在这个过程中,你需要保证下一个圈里所有的硬币面值都 ≥\ge 你移动进来的这个硬币的面值。 现在,请你帮助自己计算,把这 NN 个硬币全部移动到圈 2 和圈 3 分别所需的最少步数。

【输入格式】

从文件 coin.in 中读入数据。 第一行输入一个数字 TT,表示测试数据组数。 接下来 TT 行,每行一个数字 NN,表示硬币总数。

【输出格式】

输出到文件 coin.out 中。 因为输出量太大了,所以我们需要按照如下格式输出: 假设第 ii 个 NN 对应的答案是 ai,bia_i, b_i,你只需要输出 $(a_1 \% P) \oplus (a_2 \% P) \oplus \cdots \oplus (a_T \% P)$ 以及 $(b_1 \% P) \oplus (b_2 \% P) \oplus \cdots \oplus (b_T \% P)$,其中 P=998244353P = 998244353。

【样例 1 输入】

3
1
2
3

【样例 1 输出】

11 16

【样例 1 解释】

三组询问的 aa 分别是 1, 5, 15,bb 分别是 2, 7, 21。

大样例

【数据范围】

对于所有数据:N≤1012N \le 10^{12},T≤1.2×106T \le 1.2 \times 10^6。

测试点编号 N 的最大值 T 的最大值
1 3 1000
2, 3 11
4 15
5 100
6, 7 10510^5
8, 9 101210^{12} 10510^5
10 无限制