首页 > 试题广场 >

小O的子序列最值(二)

[编程题]小O的子序列最值(二)
  • 热度指数:29 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\,\,\,\,\,\,\,\,\,\,小O有两个长度为 n 的数组,现在她想从这两个数组中分别选出一个非空子序列,使得从第一个数组中选出的子序列的最大值不大于从第二个数组中选出的子序列的最小值。
\,\,\,\,\,\,\,\,\,\,小红想知道有多少种选取方法。
\,\,\,\,\,\,\,\,\,\,如果数组 a 可以通过删除数组 b 中的若干(可能为零或全部)元素得到,则数组 a 是数组 b子序列


输入描述:
\,\,\,\,\,\,\,\,\,\,第一行输入一个整数 n\ (1 \leq n \leq 10^5 ) 代表数组的长度。
\,\,\,\,\,\,\,\,\,\,第二行输入 n 个整数 a_1,a_2,\dots,a_n\ (1 \leq a_i \leq 10^9 ) 代表第一个数组。
\,\,\,\,\,\,\,\,\,\,第三行输入 n 个整数 b_1,b_2,\dots,b_n\ ( 1 \leq b_i \leq 10^9 ) 代表第二个数组。


输出描述:
\,\,\,\,\,\,\,\,\,\,在一行上输出一个整数,表示答案对 10^9+7 取模的结果。
示例1

输入

2
1 2
3 4

输出

9

说明

第一个数组选取任意非空子序列,第二个数组选取任意非空子序列,共 9 种选法。

这道题你会答吗?花几分钟告诉大家答案吧!