제출 #1331604

#제출 시각아이디문제언어결과실행 시간메모리
1331604hyyhFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
361 ms5820 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
#include <tuple>
#include <math.h>
#include <cstring>
#include <bitset>

#define int long long

using namespace std;
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;

#define endl '\n'
#define f first
#define s second
#define all(x) begin(x),end(x)

int sum = 0;
int x1,x2;

void process(int n){
    if(n > 0){
        sum -= n*x1;
    }
    else sum -= n*x2;
}

void negprocess(int n){
    if(n > 0){
        sum += n*x1;
    }
    else sum += n*x2;
}

signed main(){
    int n,m;cin >> n >> m;
    cin >> x1 >> x2;
    vector<int> vc;
    int last = 0;
    for(int i{};i <= n;i++){
        int g;cin >> g;
        vc.emplace_back(g-last);
        process(vc.back());
        last = g;
    }
    for(int i{};i < m;i++){
        int a,b,c;cin >> a >> b >> c;
        if(a > 0){
            negprocess(vc[a]);
            vc[a] += c;
            process(vc[a]);
        }
        if(b < n){
            negprocess(vc[b+1]);
            vc[b+1] -= c;
            process(vc[b+1]);
        }
        // for(auto k:vc) cout << k << " ";
        // cout << endl;
        cout << sum << endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...