95分求助
查看原帖
95分求助
531811
luoguo0921楼主2023/10/26 19:39
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6;
long long f[N],sum[N],n,q,a[N],k,b[N],c[N],que[N];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	for(int i=1;i<=n;i++)
	cin>>b[i];
	for(int i=1;i<=n;i++)
	cin>>c[i];
	for(int i=1;i<=n;i++)
	f[i]=min(f[i-1]+b[i],a[i]);
	for(int i=n;i>=1;i--)
	sum[i]=sum[i+1]+b[i];
	cin>>q;
	while(q--){
		int l=0,r=0,m;
		cin>>m;
		for(int i=1;i<=m;i++)
		{cin>>que[i];r+=b[que[i]];}
		que[m+1]=n+1;
		long long ans=2e10;
		for(int i=0;i<=m;i++){		
			ans=min(ans,f[que[i+1]-1]+l+sum[que[i+1]]-r);
			l+=c[que[i+1]];
			r-=b[que[i+1]];
		}
		cout<<ans<<endl;
	}
}
2023/10/26 19:39
加载中...