Submission #1340776

#TimeUsernameProblemLanguageResultExecution timeMemory
1340776SpyrosAlivSnacks (NOI25_snacks)C++20
100 / 100
400 ms28592 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int INF = 1e15;

void solve() {
    int n, q; cin >> n >> q;
    int s = 0;
    map<int, int> cnt;
    set<int> act;
    for (int i = 1; i <= n; i++) {
        int x; cin >> x;
        cnt[x]++;
        act.insert(x);
        s += x;
    }
    act.insert(INF);
    cout << s << "\n";
    while (q--) {
        int l, r, x; cin >> l >> r >> x;
        int rem = 0;
        while (true) {
            auto nxt = act.lower_bound(l);
            if (*nxt > r) break;
            rem += cnt[*nxt];
            s -= *nxt * cnt[*nxt];
            cnt[*nxt] = 0;
            act.erase(nxt);
        }
        s += x * rem;
        act.insert(x);
        cnt[x] += rem;
        cout << s << "\n";
    }
}

signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t = 1;
    while (t--) solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...