90分求调
查看原帖
90分求调
675208
coder2009楼主2023/5/14 19:42

rt,第一个测试点WA了,相当费解啊

void best_coder() {
    int t;
    cin >> t;
    while(t > 0) {
        --t;
        int n;
        cin >> n;
        vector<int> v(n);
        vector<int> k(n);
        for (int i = 0; i < n; ++i) {
            cin >> v[i];
        }
        for (int i = 0; i < n; ++i) {
            cin >> k[i];
        }
        if (n == 1) {
            cout << v[0] << endl;
            continue;
        }
        if (k[0] == k[n - 1]) {
            cout << v[0] + v[n - 1] << endl;
        } else {
            int ans = 0x3f3f3f3f;
            for (int i = 1; i < n - 1; ++i) {
                if (k[i] == k[0] && k[i + 1] == k[n - 1]) {
                    ans = min(ans, v[i] + v[i + 1]);
                }
            }
            for (int i = 1; i < n - 1; ++i) {
                if (k[i] == k[n - 1] && k[i - 1] == k[0]) {
                    ans = min(ans, v[i] + v[i - 1]);
                }
            }
            cout << ans + v[0] + v[n - 1] << endl;
        }
    }
}
2023/5/14 19:42
加载中...