贪心30分求调
查看原帖
贪心30分求调
807667
JenF楼主2023/10/20 15:08
#include<iostream>
using namespace std;
#define int long long
const int N=2e6+10,MAXN=1e9+10;
int t,n,a[N],ans;
int op[N];
signed main(){
	cin>>t;
	while(t--){
		cin>>n;
		for(int i=1;i<=n;i++){
			cin>>a[i];
		}
		for(int i=1;i<=n;i++){
			cin>>op[i];
		}
		if(op[1]==op[n]){
			cout<<a[1]+a[n]<<endl;
			continue;
		}
		ans=MAXN;
		for(int i=1;i<n;i++){
			if(op[i]==op[1] && op[i+1]==op[n]){
				ans=min(ans,a[1]+a[i]+a[i+1]+a[n]);
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}
2023/10/20 15:08
加载中...