loj#P3737. 「LNOI2022」吃

「LNOI2022」吃

题目描述

小 A 很喜欢吃东西。

小 A 面前有 nn 份食物,第 ii 份有参数 aia_ibib_i。小 A 可以按照任意顺序吃掉这 nn 份食物。当她吃掉编号为 ii 的食物时,她可以选择将自己的体重乘以 aia_i 或者将自己的体重加上 bib_i。每份食物只能吃恰好一次。

小 A 的初始体重为 11,请求出她吃完 nn 份食物后能达到的最大体重。答案可能很大,你只需要输出其对 (109+7)({10}^9 + 7) 取模后的结果。

注意:你需要最大化体重并将该最大值对 (109+7)\boldsymbol{({10}^9 + 7)} 取模,而非最大化体重对 (109+7)\boldsymbol{({10}^9 + 7)} 取模的结果。

输入格式

第一行输入一个整数 nn 表示食物的数量。第二行 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,第三行 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n,表示每份食物的参数。

输出格式

输出一个整数,表示小 A 可以得到的最大体重对 (109+7)({10}^9 + 7) 取模后的结果。

5
1 2 3 4 5
100 200 300 400 500

18060

样例 2

见附加文件中 [food2.in](file:food2.in) 和 [food2.ans](file:food2.ans)。

该组样例满足 n10n \le 10 和特殊性质 E。

样例 3

见附加文件中 [food3.in](file:food3.in) 和 [food3.ans](file:food3.ans)。

该组样例满足 n20n \le 20 和特殊性质 E。

样例 4

见附加文件中 [food4.in](file:food4.in) 和 [food4.ans](file:food4.ans)。

该组样例满足 n2000n \le 2000

样例 5

见附加文件中 [food5.in](file:food5.in) 和 [food5.ans](file:food5.ans)。

该组样例满足特殊性质 A。

样例 6

见附加文件中 [food6.in](file:food6.in) 和 [food6.ans](file:food6.ans)。

该组样例满足特殊性质 C。

样例 7

见附加文件中 [food7.in](file:food7.in) 和 [food7.ans](file:food7.ans)。

该组样例满足特殊性质 D。

样例 8

见附加文件中 [food8.in](file:food8.in) 和 [food8.ans](file:food8.ans)。

该组样例满足特殊性质 B。

样例 9

见附加文件中 [food9.in](file:food9.in) 和 [food9.ans](file:food9.ans)。

数据范围与提示

对于 100%100 \% 的测试数据,1n5×1051 \le n \le 5 \times {10}^51ai,bi1061 \le a_i, b_i \le {10}^6

测试点编号 nn \le 特殊性质
11 1010 DE
22 E
33 AE
44 E
55 2020 DE
66 E
77
88
99 20002000 D
1010
1111
1212
1313 5×1055 \times {10}^5 BD
1414 B
1515 C
1616
1717 105{10}^5
1818
1919 5×1055 \times {10}^5
2020

特殊性质 A:ai=1a_i = 1
特殊性质 B:aibia_i \ge b_i
特殊性质 C:ai,bia_i, b_i[1,106][1, {10}^6] 内独立均匀随机生成。
特殊性质 D:ai2a_i \ge 2
特殊性质 E:ai4a_i \le 4