在最终极之渊,有一座无限高的塔,它的最低层是第 层。
每一个楼层都设置有只允许下行的特级遗物电梯。具体而言,第 层设置有一座直达第 层的电梯(若 )和一座直达第 层的电梯(若 )。特别地,如果 ,还额外设置有一座直达第 层的电梯(若 ),此处 是取余运算。
假设你一开始位于第 层,想要前往第 层,你只允许乘坐前面所述的下行电梯,求前往的方案数。
由于在给定数据范围下,答案可能远大于 ,你只需要输出答案对 取余的结果。
以下的取余性质可能会对帮助你避免潜在的溢出问题有帮助,对于正整数 ,有:
评测环境一秒可以做约 次运算,请充分优化你的代码避免运行超时。
输入
输入包含多组测试用例。
第一行包含一个整数 ,表示你需要处理 组测试用例。
接下来 行每行一组测试用例,各包含两个用空格间隔的整数 ,含义如题目描述所示。
输出
对于每组测试用例,在单独的一行输出一个整数,表示答案对 取余的结果。
样例
标准输入 复制文本 |
3 4 1 5 2 580123456712345678 123456712345678580 |
标准输出 复制文本 |
4 3 644236091 |
提示
对于测试用例 ,四种方案如下:
对于测试用例 ,三种方案如下:
对于测试用例 ,记得输出的是答案对 取余的结果。
来源
lr580