Buffet

#include <bits/stdc++.h>
using namespace std;
constexpr int N = 1e5 + 100;

array<int, N> a, b, c;
int n;
int main()
{
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    for (int i = 1; i <= n; i++) scanf("%d", &b[i]);
    for (int i = 1; i < n; i++) scanf("%d", &c[i]);

    // 注意加上ci的情况是a[i] = 上一个数 + 1
    int last = -1;
    int res = 0;
    for (int i = 1; i <= n; i++) {
        res += b[a[i]];
        if (last == a[i] - 1) res += c[last];
        last = a[i];
    }

    cout << res << '
';

    return 0;
}
原文地址:https://www.cnblogs.com/FrankOu/p/15468026.html