真的做出来了 还是有点伤心的
#include <cstdio>
#include <cstring>
#include <algorithm>
#define ll long long
using namespace std;
const ll mode=1e9+7;
const int N=1e6+10;
ll a[N],b[N],sum[N];
int main()
{
int n,m,l,r;
while(scanf("%d%d%d%d",&n,&m,&l,&r)!=EOF)
{
memset(a,0,sizeof(a));
ll ans=0;
for(int i=0;i<=n;i++)
scanf("%lld",&a[i]);
for(int i=0;i<=m;i++)
{
scanf("%lld",&b[i]);
if(i==0)
sum[i]=b[i];
else
sum[i]=sum[i-1]+b[i];
sum[i]%=mode;
}
for(int i=m+1;i<=r;i++)
sum[i]=sum[i-1];
for(int i=0;i<=min(r,n);i++)
{
if(l-i-1>=0)
ans+=a[i]*((sum[r-i]-sum[l-i-1]+mode)%mode);
else
ans+=a[i]*sum[r-i];
ans%=mode;
}
printf("%lld\n",ans);
}
return 0;
}