抽卡
题号:NC205461
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

王子连接的国服终于上线啦~
已知王子连接的抽卡系统如下:
共有 个卡池,第 个卡池共有 种卡,每张卡的出货率都是相等的(也就是说该卡池单次抽卡,每种卡出货率是 )。
个卡池中,你有 种卡是自己很想要的。
现在的问题是,如果每个卡池里都单抽一次,能抽到自己想要的卡的概率是多少?
可以证明,这个概率一定可以写成 形式的分数。最后输出该分数在模 意义下的值就可以了。
即输出满足 的最小非负整数

输入描述:

第一行输入一个正整数 
第二行输入 个正整数 a_i
第三行输入 个正整数 b_i ,代表第 个卡池的你想要的卡种类数量。

输出描述:

一个整数,表示该概率在模  意义下的值。
示例1

输入

复制
2
3 4
1 1

输出

复制
500000004

说明

能抽到自己想要的卡的概率是1/2,由于2*500000004%1000000007=1,故输出500000004。