前四个点$$AC,后六个点WA
#include<bits/stdc++.h>
using namespace std;
#define itn int
#define int long long
const int maxN=500010;
const int P=1e9+7;
long long front_squea[maxN];
long long front_squeb[maxN];
int a[maxN],b[maxN];
inline void read(int & n) {
n=0;
char c=getchar();
while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9') n=(n<<3)+(n<<1)+(c^48),c=getchar();
}
signed main() {
int n;
scanf("%lld",&n);
for(int i=1;i<=n;i++) read(a[i]);
for(int i=1;i<=n;i++) read(b[i]);
a[0]=b[0]=0;
for(int i=1;i<=n;i++) front_squea[i]=(front_squea[i-1]+a[i])%P;
for(int i=1;i<=n;i++) front_squeb[i]=(front_squeb[i-1]+b[i])%P;
long long ans=0;
long long a_i=0,b_i=0,ab_i=0;
for(itn i=1;i<=n;i++)
{
a_i+=front_squea[i]%P;
b_i+=front_squeb[i]%P;
ab_i+=front_squea[i]*front_squeb[i]%P;
}
ans=((n+1)*ab_i-(a_i*b_i)%P)%P;
printf("%lld",abs(ans));
return 0;
}