样例2没过,为什么100?
查看原帖
样例2没过,为什么100?
1095806
Supa7onyz楼主2024/10/3 21:51
#include <iostream>
using namespace std;
int T;
int main()
{
    cin>>T;
    while (T--){
        int n;
        cin>>n;
        long long a[n+10],b[n+10];
        for (int i=1;i<=n;i++){
            cin>>a[i];
        }
        for (int i=1;i<=n;i++){
            cin>>b[i];
        }
        if (b[1]==b[n]){
            cout<<a[1]+a[n]<<endl;
        }else if(b[1]){
            long long ans=1e15;
            for (int i=2;i<n;i++){
                if (b[i]&&!b[i+1]){
                    ans=min(ans,(a[1]+a[i])+(a[i+1]+a[n]));
                }
            }
            cout<<ans<<endl;
        }else{
            long long ans=1e15;
            for (int i=2;i<n;i++){
                if (!b[i] && b[i+1]){
                    ans=min(ans,(a[1]+a[i])+(a[i+1]+a[n]));
                }
            }
            cout<<ans<<endl;
        }
    }
    return 0;
}
2024/10/3 21:51
加载中...