RE 90分求调
查看原帖
RE 90分求调
1291627
xiaowenxu_qwq楼主2025/7/28 11:46

求调,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;
} 
2025/7/28 11:46
加载中...