#YDRG004H. 神明大人请听我一言

神明大人请听我一言

本题目满分 150 分。

题目名称来自 はぐ (feat. 初音ミク & 可不) 的歌词。

题目描述

MIMI 给了你四个非负整数 N,L,R,KN,L,R,K,问有多少个长为 NN 的序列 aa 满足:

  • LaiRL\le a_i\le R
  • $a_1\text{ xor }a_2\text{ xor }\cdots\text{ xor }a_N=K$。

答案对 998244353998244353 取模。两个长为 NN 的序列 a,ba,b 不同,当且仅当存在 1iN1\le i\le N 使得 aibia_i\neq b_i

输入格式

本题有多组数据。 第一行一个正整数 TT 表示数据组数。

对于每组数据会输入一行四个非负整数 N,L,R,KN,L,R,K

输出格式

对于每组数据,输出一行一个非负整数表示符合条件的序列个数对 998244353998244353 取模的值。

样例 11 输入

4
3 1 3 0
4 2 3 1
4 1 3 0
4 0 2 3

样例 11 输出

6
8
21
20

样例 11 说明

对于第一组数据,符合条件的 aa 序列有且仅有 (1,2,3)(1,2,3)66 种不同排列。

对于第二组数据,符合条件的序列 aa 有且仅有 (2,2,2,3)(2,2,2,3)44 种不同排列与 (2,3,3,3)(2,3,3,3)44 种不同排列,因此答案为 4+4=84+4=8

样例 22

见附加文件。

测试点约束

对于 100%100\% 的数据,$1\le T\le 10^4,0\le L\le R<2^{60},0\le K<2^{60},1\le N\le 10^{18}$。

每个测试点的详细约束见下表:

子任务编号 TT NN 特殊性质 分数 依赖子任务
Subtask #1 5\le 5 5\le 5 R,K7R,K\le 7 1414
Subtask #2 100\le 100 R,K100R,K\le 100 1515 11
Subtask #3 1000\le 1000 R,K1000R,K\le 1000 1616 22
Subtask #4 106\le 10^6 R,K106R,K\le 10^6 1515 33
Subtask #5 100\le 100 1000\le 1000 R,K109,L=0R,K\le 10^9,L=0 88
Subtask #6 109\le 10^9 2424 55
Subtask #7 500\le 500 R,K109R,K\le 10^9 1313 4,64,6
Subtask #8 1018\le 10^{18} 2020 77
Subtask #9 104\le 10^4 2525 88