样例都对了,8,9,10WA不知道为什么
#include<bits/stdc++.h>
using namespace std;
const int N=500010;
long long u[N],v[N],a[N],b[N],f[N],g[N],ans=0,x=0,y,m=1e9+7,n;
int main()
{
scanf("%lld",&n);
for(long long i=1;i<=n;++i){
scanf("%lld",&a[i]);
u[i]=(u[i-1]+a[i])%m;
}
for(long long i=1;i<=n;++i){
scanf("%lld",&b[i]);
v[i]=(v[i-1]+b[i])%m;
}
for(long long i=n;i;--i){
f[i]=(f[i+1]+a[i]*(n-i+1))%m;
g[i]=(g[i+1]+b[i]*(n-i+1))%m;
}
for(long long r=1;r<=n;++r)x+=(u[r]*v[r])%m;
x%=m;
ans=x;
for(long long l=1;l<n;++l){
y=((a[l]*g[l])%m+(b[l]*f[l])%m+m-(a[l]*b[l]*(n-l+1))%m)%m;
x=(x+m-y)%m;
ans+=x;
}
printf("%lld",ans%m);
return 0;
}