Submission #1157810

#TimeUsernameProblemLanguageResultExecution timeMemory
1157810dnnndaFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
68 ms6468 KiB
#include<bits/stdc++.h>
using namespace std;
#define S second
#define F first
#define ll long long
//#define int long long
//#pragma GCC optimize("Ofast, unroll-loop")
//#pragma GCC target("avx,avx2")
#pragma GCC optimize("O3")
const int inf=0x3f3f3f3f;
const ll inff=0x3f3f3f3f3f3f3f3f;
//const int X=1000000007;
const int X=998244353;

int a[200005];
ll d[200005];

signed main(){
    ios::sync_with_stdio(0), cin.tie(0);
    int n, q, s, t; cin >> n >> q >> s >> t;
    for(int i=0 ; i<=n ; i++){
        cin >> a[i];
        d[i]=a[i]-a[i-1];
    }
    auto cal=[&](int i)->ll{
        if(d[i]>0) return -1LL*s*d[i];
        return -1LL*t*d[i];
    };
    ll ans=0;
    for(int i=1 ; i<=n ; i++) ans+=cal(i);
    //cout << ans << '\n';
    while(q--){
        int l, r, x; cin >> l >> r >> x;
        ans-=cal(l);
        if(r+1<=n) ans-=cal(r+1);
        d[l]+=x, d[r+1]-=x;
        ans+=cal(l);
        if(r+1<=n) ans+=cal(r+1);
        cout << ans << '\n';
    }


    return 0;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...