Submission #1273833

#TimeUsernameProblemLanguageResultExecution timeMemory
1273833warrennFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
371 ms7316 KiB
// submit di https://oj.uz/problem/view/JOI17_foehn_phenomena
#include<bits/stdc++.h>
using namespace std;
#define int long long 

signed main(){
    int n,qu,s,t;
    cin>>n>>qu>>s>>t;
    int a[n+1];
    int diff[n+1];
    for(int q=0;q<=n;q++)cin>>a[q];
    int ans=0;

    for(int q=1;q<=n;q++){
        diff[q]=a[q-1]-a[q];
        if(diff[q]<0){
            ans+=diff[q]*s;
        }
        else{
            ans+=diff[q]*t;
        }
    }

    while(qu--){
        int l,r,x;
        cin>>l>>r>>x;
        if(diff[l]>0){
            ans-=diff[l]*t;
        }
        else{
            ans-=diff[l]*s;
        }
        diff[l]-=x;
        if(diff[l]>0){
            ans+=diff[l]*t;
        }
        else{
            ans+=diff[l]*s;
        }

        if(r<n){
            if(diff[r+1]>0){
                ans-=diff[r+1]*t;
            }
            else{
                ans-=diff[r+1]*s;
            }
            diff[r+1]+=x;
            if(diff[r+1]>0){
                ans+=diff[r+1]*t;
            }
            else{
                ans+=diff[r+1]*s;
            }
        }
        cout<<ans<<endl;
    }
    
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...