比赛 2026.1.3 评测结果 AAAEEEEEEE
题目名称 团子大家族 最终得分 30
用户昵称 梦那边的美好BP 运行时间 1.023 s
代码语言 C++ 内存使用 3.46 MiB
提交时间 2026-01-03 11:16:42
显示代码纯文本
#include <iostream>
using namespace std;
const int N = 1003;
long long a[N], f[N], cnt[N];
int main() {
    freopen("seqsqrt.in", "r", stdin);
    freopen("seqsqrt.out", "w", stdout);
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    for (int i = 1; i <= n; i++) {
        cin >> f[i];
        cnt[f[i]]++;
    }
    for (int i = 1; i <= m; i++) {
        int op;
        cin >> op;
        if (op == 1) {
            int l, r, x;
            cin >> l >> r >> x;
            for (int i = l; i <= r; i++) {
                a[i] += x;
            }
        } else if (op == 2) {
            int p, v;
            cin >> p >> v;
            cnt[f[p]]--;
            cnt[v]++;
            f[p] = v;
        } else {
            int l, r, k;
            cin >> l >> r >> k;
            long long ans = 0;
            for (int i = l; i <= r; i++) {
                if (f[i] == k) {
                    ans += a[i];
                }
            }
            cout << ans * cnt[k] << endl;
        }
        // cout << "!";
        // for (int i = 1; i <= n; i++) cout << a[i] << " ";
        // cout << endl << "@";
        // for (int i = 1; i <= n; i++) cout << f[i] << " ";
        // cout << endl;
    }
    return 0;
}