#include<iostream>
#include<algorithm>
#include<cmath>
#include<map>
#include<vector>
#include<set>
//#include<bits/stdc++.h>
using namespace std;
long long f[1000000];
long long mod = 1e9+7;
void fact()
{
f[1] = 1;
for (int i = 2;i <= 2000005;i++)
f[i] = (i%mod * f[i - 1]%mod)%mod;
}
int main()
{
std::ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
cout.tie(NULL);
fact();
int n;
cin>>n;
vector<long long >a(n),b(n);
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
cin>>b[i];
long long ans=1,g=0;
for(int i=0;i<n;i++)
{
if(a[i]>b[i])
{
cout<<0;
return 0;
}
long long x=(b[i]-a[i])/(i+1);
g+=x;
ans=((ans%mod)*(f[x]%mod)%mod);
}
cout<<f[g]/ans<<"\n";
}
Copy