WD与循环
题目背景
WD整日沉浸在循环中,无法自拔……
题目描述
这天,WD蒟蒻为了解决一个小问题写了个很长很长的for循环:
```cpp
int cnt = 0;
for (int a_1 = 0; a_1 <= m; a_1++) {
for (int a_2 = 0; a_1 + a_2 <= m; a_2++) {
...
for (int a_n = 0; a_1 + a_2 + ... + a_n <= m; a_n++) {
cnt = (cnt + 1) % 19491001;
}
}
}
printf("%d\n", cnt);
```
CX过来看了一眼,说:**WD你个笨蛋,这道题不是SB题吗?**WD一脸懵逼,只好请你来教教他啦……
输入输出格式
输入格式
第一行一个数$T$,表示数据组数。接下来每行两个数$n,m$,分别表示循环重数和每层循环的上界。
输出格式
共$T$行,每行一个数表示答案。
输入输出样例
输入样例 #1
2
2 9
10 14
输出样例 #1
55
1961256
说明
$subtask1(23pts):~n,m\le 1,000,~1\le T\le 10,000$
$subtask2(35pts):~n,m\le 10^7,~1\le T\le 5$
$subtask3(42pts):~n,m\le 10^{18},~1\le T\le 100,000$
对于样例1,写个代码就知道答案是55了(大雾)。