RT,很简单的贪心模拟题,可是蒟蒻挑了2天了调不明白,求助555~
#include<stdio.h>
#define N 100010
#define mod 1000000007ll
long long ans,n,ma,mb,a[N],b[N];
void read()
{
scanf("%lld",&n);
scanf("%lld",&ma);
for(long long i=1ll;i<=ma;++i)
scanf("%lld",a+i);
scanf("%lld",&mb);
for(long long i=1ll;i<=mb;++i)
scanf("%lld",b+i);
}
long long max(long long x,long long y){return x>y?x:y;}
int main()
{
read();
long long res=1ll,ans1=0ll,ans2=0ll;
for(long long i=ma;i>=1ll;--i)
{
ans1+=res*a[i]%mod,ans1%=mod;
ans2+=res*b[i]%mod,ans2%=mod;
res=res*max(a[i]+1ll,max(b[i]+1ll,2ll))%mod;
}
printf("%lld",(ans1-ans2+mod)%mod);
return 0;
}