AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1010;
int mod = 1e9 + 7;
const int M = 1e5 + 3;
ll a[M],b[M],d[M],counts[M];
ll suma = 0,sumb = 0;
int main()
{
int n;
cin>>n;
int placeA,placeB;
cin>>placeA;
for(int i = placeA; i >= 1; i --)
cin>>a[i];
cin>>placeB;
for(int i = placeB; i >= 1; i --)
cin>>b[i];
int k = max(placeB,placeA);
for(int i = 1; i <= k; i ++){
//求进制
d[i] = max((ll)2,1 + max(a[i],b[i]));
}
counts[1] = 1;
for(int i = 2; i <= k; i ++)
counts[i] = (counts[i - 1] * d[i - 1]) % mod;
for(int i = 1;i <= placeA;i ++)
suma = (suma + a[i] * counts[i] ) % mod;
for(int i = 1;i <= placeB;i ++)
sumb = (sumb + b[i] * counts[i] ) % mod;
cout<<(suma - sumb + mod)%mod<<endl;
}
主要错误是