求调,RE一个点。
#include<bits/stdc++.h>
#define int __int128
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)
//#define getchar() getchar_unlocked()
using namespace std;
int ans,a[1000001],b[1000001],c[1000001];
inline int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();
return x*f;
}
void write(int x)
{
if(x<0)putchar('-'),x=-x;
if(x<10)putchar(x+'0');
else write(x/10),putchar(x%10+'0');
}
signed main()
{
int n=read();
for(int i=1;i<n;i++)a[i]=read();
int k=read();
if(k==0)
getchar();
for(int i=1;i<=k;i++)b[i]=read();
for(int i=1;i<=k;i++)c[i]=read();
int s=read(),t=read();
int j=1;
while(s!=b[j]){
j++;
}
ans-=c[j];
for(int i=s,z=j;i<=n;i++){
if(i==t)
{
write(ans);
return 0;
}
ans+=a[i];
if(b[z]==i){
ans+=c[z];
z++;
}
}
return 0;
}