比赛 集训 评测结果 TTTTAAATTTA
题目名称 兔子集团军 最终得分 36
用户昵称 Hollow07 运行时间 14.103 s
代码语言 C++ 内存使用 23.97 MiB
提交时间 2025-07-03 12:46:39
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const ll MXN=0x3f3f3f3f3f3f3f3f;
const ll MINX=-0x3f3f3f3f3f3f3f3f;

ll n;

int main() {
	freopen("RRR.in","r",stdin);
	freopen("RRR.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    vector<int> c(n+1),v(n+1),fa(n+1);
    for (int i=1;i<=n;i++) cin>>c[i];
    for (int i=1;i<=n;i++) cin>>v[i];
    for (int i=1;i<=n;i++) cin>>fa[i];
    vector<int> css;
    for (int i=1;i<=n;i++) css.push_back(c[i]);
    sort(css.begin(),css.end());
    auto last=unique(css.begin(),css.end());
    css.erase(last,css.end());
    ll num_css=css.size();
    vector<ll> minx(num_css,MXN);
    vector<ll> maxx(num_css,MINX);
    for (int i=1;i<=n;i++){
        ll colorx=lower_bound(css.begin(),css.end(),c[i])-css.begin();
        if (i<minx[colorx]) minx[colorx]=i;
        if (i>maxx[colorx]) maxx[colorx]=i;
    }
    vector<ll> lar(n+1);
    vector<ll> rar(n+1);
    for (int i=1;i<=n;i++){
        ll colorx=lower_bound(css.begin(),css.end(),c[i])-css.begin();
        lar[i]=minx[colorx];
        rar[i]=maxx[colorx];
    }
    ll ans=MXN;
    for (int l=1;l<=n;l++){
        ll cminl=MXN;
        ll cmaxr=MINX;
        ll current_cost=0;
        for (int r=l;r<=n;r++){
            if (lar[r]<cminl) cminl=lar[r];
            if (rar[r]>cmaxr) cmaxr=rar[r];
            ll d=r-l+1;
            current_cost+=v[r]*fa[d]*fa[d];
            if (cminl>=l&&cmaxr<=r){
                if (current_cost<ans) ans=current_cost;
            }
        }
    }
    if (ans==MXN) ans=0;
    cout<<ans<<endl;
    return 0;
}