Submission #51542

#TimeUsernameProblemLanguageResultExecution timeMemory
51542Flying_dragon_02Foehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
200 ms7644 KiB
#include<bits/stdc++.h>

using namespace std;

#define fi first
#define se second
#define pb push_back
#define mp make_pair

typedef pair<int,int> ii;

int n,q;
long long s,t,a[200005],b[200005],total,l,r,x;

int main(){
    cin.tie(0),ios::sync_with_stdio(0);
    cin >> n >> q >> s >> t;
    for(int i = 0;i <= n;i++)
        cin >> a[i];
    for(int i = 1;i <=n;i++){
        b[i] = a[i] - a[i-1];
        if(a[i-1] < a[i])
            total -= (a[i] - a[i-1])*s;
        else
            total -= (a[i] - a[i-1])*t;
    }
    while(q--){
        cin >> l >> r >> x;
        if(b[l] > 0)
        total += b[l]*s;
        else
        total += b[l]*t;
        b[l] += x;
        if(b[l] > 0)
        total -= b[l]*s;
        else
        total -= b[l]*t;
        if(r+1 <= n){
            if(b[r+1] > 0)
            total += b[r+1]*s;
            else
            total += b[r+1]*t;
            b[r+1] -= x;
            if(b[r+1] > 0)
            total -= b[r+1]*s;
            else
            total -= b[r+1]*t;
        }
        cout << total << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...