Submission #1368615

#TimeUsernameProblemLanguageResultExecution timeMemory
1368615m0rtu_us0512Snacks (NOI25_snacks)C++20
21 / 100
328 ms18024 KiB
#include<bits/stdc++.h>
using namespace std;

int64_t N, Q;
map<int64_t, int64_t> A;
deque< tuple <int64_t, int64_t, int64_t> > query;
int64_t sum = 0;

int main(){
    cin >> N >> Q;

    query.assign( Q , {0,0,0} );

    for( auto n=N ; n-- > 0 ; ){
        int64_t a ;
        cin >> a;
        A[a] ++ ;
    }
    for( auto &[l,r,x] : query ){
        cin >> l >> r >> x;
    }

    int64_t sum = 0 ;
    for( auto &[k,v] : A ){
        sum += k*v;
    }
    cout << sum << endl;

    while( query.size() ){
        auto [l,r,x] = query[0] ;
        query.pop_front();

        int64_t replaced = 0;

        // iterator
        auto it = A.lower_bound(l);

        for( ; it!=A.end() ; ){
            auto [k,v] = *it ;
            if( r < k )
                break;

            sum -= k*v;
            it = A.erase(it);
        }

        if( replaced ){
            A[x] += replaced;
            sum += x*replaced;
        }

        cout << sum << endl;
    }

    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...