小球碰撞
题号:NC16031
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

一个弹球(可视为质点)被水平抛出,落地时发生完全弹性碰撞,设弹球第一次落地位置为x,则第i次落地位置为(2i-1)x
若弹球第一次落地的位置在区间[L,R]均匀随机分布,求弹球落在区间[L,R]内的总次数的数学期望值 

可以证明答案为有理数,若答案表示为最简分数为a/b,则存在c使得b*c mod 998244353 = 1 ,只需输出a*c mod 998244353

输入描述:

第一行,一个整数n
接下来n行,每行两个空格分隔的整数L,R

输出描述:

输出n行,每行一个整数,表示a*c mod 998244353
示例1

输入

复制
3
3 4
3 5
1 5

输出

复制
1
1
166374060

备注:

n组询问,1<=n<=50000
1<=L<R<=10000000