Submission #1155442

#TimeUsernameProblemLanguageResultExecution timeMemory
1155442tsengangFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
296 ms7292 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define ertunt return
const int MOD = 998244353;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
int main() {
    ll n,q,s,t;
    cin >> n >> q >> s >> t;
    ll a[n+4];
    ll ans = 0;
    ll b[n+4];
    for(ll i = 0; i <= n; i++){
        cin >> a[i];
        if(i > 0){
            b[i] = a[i] - a[i-1];
            if(a[i] >= a[i-1]){
                ans-=b[i]*s;
            }
            else{
                ans+=t*(a[i-1] - a[i]);
            }
        }
    }
    while(q--){
        ll l,r,x;
        cin >> l >> r >> x; 
        if(b[l] >= 0)ans+=s*b[l];
        else ans += t*b[l];
        b[l]+=x;
        if(b[l]>=0) ans-=s*b[l];
        else ans-=t*b[l];
        if(r < n){
            if(b[r+1]>=0) ans+=s*b[r+1];
            else ans+=t*b[r+1];
            b[r+1]-=x;
            if(b[r+1]>=0) ans-=s*b[r+1];
            else ans-=t*b[r+1];
        }
        cout << ans << '\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...