石老板举世无双
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述


众所周知石老板是一个憨憨,Ta 有一次写程序的时候写了这样的函数:
void calc(int s) {
    double l = a, r = b;
    int cnt = 0;
    while(cnt != s) {
        double mid = (l + r) / 2;
        if(check(mid)) l = mid;
        else r = mid;
        cnt ++;
    }
    cout << (l + r) / 2;
}
其中 check 函数被只会随机返回  或者 ,其返回  和  的概率分别为  和 ,上面的程序只会执行  次。现在给定  的初始值  以及 ,不考虑浮点数误差的情况下,你需要输出 石老板 这个程序输出的答案的 期望值 对于 998244353 取模后的答案是多少。

注意:  a 可能大于 b 

输入描述:

第一行五个整数 ·

其中 

表示 check 返回  的概率是  ,返回  的概率是 ,保证 

输出描述:

一行,一个整数表示上面的函数输出答案的期望值对于 998244353 取模后的结果。
示例1

输入

复制
1 2 1 50 50

输出

复制
499122178

说明

样例解释:
因为得到的结果的期望是 1.5,其对于 998244353 取模后的结果即 499122178
示例2

输入

复制
32676 511511 20 50 50

输出

复制
499394270
示例3

输入

复制
151246121 998244352 1000 42 58

输出

复制
176364593

备注:

数据范围:

对于  的数据保证:

对于另外  的数据保证:  并且 

对于另外  的数据保证:

对于  的数据保证: 

大样例下载:https://pan.baidu.com/s/1uR8keXNeZmYLN46rMZ0Mfg  密码: a3tl