圆桌聚餐
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在一个餐馆中,有一个巨大的圆桌,共有 n 个座位。A国和B国计划在这个餐馆举行盛大的圆桌聚餐。
A国人很腼腆,不会主动坐在别人旁边;B国人更甚,并如果座位两边的各两个座位已经有人,他便绝不落座。
形式化的说,如果选中了 i ,并且 i-1,i+1中有至少一个座位有人,A国人不会落座。如果选中了 i ,并且 i-1,i-2, i+1,i+2四个座位中有至少一个座位有人,B国人不会落座,
A国和B国人在餐馆门口排起了长队(人数无限多),现在你知道每次进来一个人,是A国人概率是,是B国人的概率是。 对于每一个来到餐厅的人,他会使用选座机随机分配圆桌上的一个位置,位置被选中的概率均为(可能有人),如果这个位置不符合上述规则,或者已经有人就座了,他会直接离开餐馆,不然,他会坐在这个位置。

直到没有人能够再进入餐馆就座为止,期望多少人会落座?对 998244353取模输出。

输入描述:

一行三个整数,n , p , q。

输出描述:

一行一个整数,输出答案。
可以证明答案可以表示为 ( P 和 Q 为整数且互质, )。
输出 .
示例1

输入

复制
5 1 0

输出

复制
2

说明

答案为2.
示例2

输入

复制
6 1 1

输出

复制
499122179

说明

答案为2.5.

备注: