#include <iostream>
#include <cstdio>
using namespace std;
const int N=5e5+10;
int a[N],b[N],sa[N],sb[N],c[N],ssa[N],ssb[N],n,Mod=1e9+7,ans=0;
int mod(int a){
return (a%Mod+Mod)%Mod;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=1;i<=n;i++)scanf("%d",&b[i]);
for(int i=1;i<=n;i++)sa[i]=mod(a[i]+sa[i-1]);
for(int i=1;i<=n;i++)sb[i]=mod(b[i]+sb[i-1]);
for(int i=1;i<=n;i++)c[i]=mod(c[i-1]+sa[i]*sb[i]);
for(int i=1;i<=n;i++)ssa[i]=mod(sa[i]+ssa[i-1]);
for(int i=1;i<=n;i++)ssb[i]=mod(sb[i]+ssb[i-1]);
for(int i=1;i<=n;i++){
//printf("%d %d %d %d %d\n",sa[i],sb[i],ssa[i],ssb[i],c[i]);
int f1=mod(c[n]-c[i-1]),f2=mod((n-i+1)*mod(sa[i-1]*sb[i-1])),f3=mod(sa[i-1]*mod(ssb[n]-ssb[i-1])),f4=mod(sb[i-1]*mod(ssa[n]-ssa[i-1]));
ans=mod(ans+f1+f2-f3-f4);
//printf("%d %d %d %d %d\n",ans,f1,f2,f3,f3);
}
printf("%d",mod(ans));
return 0;
}
代码只有20分,1~2AC。为啥,大佬求调