描述:

  小明有n个背包和n个物品,第i个背包的容量为c[i],第i个物品的体积为v[i]。有一天,他突然想到一个问题,如果规定每个背包能且仅能装一件物品,且装的物品的体积必须小于等于其容量,那么有多少种装物品的方案呢?由于方案数太大,小明只要你告诉他方案数除以10^9+7的余数即可。

 

输入:

  第一行为一个整数n。第二行有n个整数,第i个整数表示c[i]。第三行有n个整数,第i个整数表示v[i]。相邻整数之间用一个空格分隔,行末无空格。

 

输出:

    一个整数,表示方案数除以10^9+7的余数。

 

样例输入:

5

1 3 2 2 4

1 2 1 1 1

 

样例输出:

96

 

范围:

  1<=n<=10^5,1<=c[i]<=10^9,1<=v[i]<=10^9。

  保证数据有梯度。