#P8365. [LNOI2022] 吃

[LNOI2022] 吃

题目描述

小 A 很喜欢吃东西。

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

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

注意:你需要最大化体重并将该最大值对 (109+7)\bm{({10}^9 + 7)} 取模,而非最大化体重对 (109+7)\bm{({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

提示

【样例解释 #1】

以下方案可以达到最大体重:

  • 吃掉第一份食物并选择将体重增加 100100,体重变为 101101;
  • 吃掉第二份食物并选择将体重增加 200200,体重变为 301301;
  • 吃掉第三份食物并选择将体重乘 33,体重变为 903903;
  • 吃掉第四份食物并选择将体重乘 44,体重变为 36123612;
  • 吃掉第五份食物并选择将体重乘 55,体重变为 1806018060。

【样例 #2】

见附件中的 food/food2.in 与 food/food2.ans。

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

【样例 #3】

见附件中的 food/food3.in 与 food/food3.ans。

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

【样例 #4】

见附件中的 food/food4.in 与 food/food4.ans。

该组样例满足 n≤2000n \le 2000。

【样例 #5】

见附件中的 food/food5.in 与 food/food5.ans。

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

【样例 #6】

见附件中的 food/food6.in 与 food/food6.ans。

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

【样例 #7】

见附件中的 food/food7.in 与 food/food7.ans。

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

【样例 #8】

见附件中的 food/food8.in 与 food/food8.ans。

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

【样例 #9】

见附件中的 food/food9.in 与 food/food9.ans。

【数据范围】

对于 100%100 \% 的测试数据,1≤n≤5×1051 \le n \le 5 \times {10}^5,1≤ai,bi≤1061 \le a_i, b_i \le {10}^6。

测试点编号 n≤n \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:ai≥bia_i \ge b_i。
特殊性质 C:ai,bia_i, b_i 在 [1,106][1, {10}^6] 内独立均匀随机生成。
特殊性质 D:ai≥2a_i \ge 2。
特殊性质 E:ai≤4a_i \le 4。