Submission #1159642

#TimeUsernameProblemLanguageResultExecution timeMemory
1159642brover29Foehn Phenomena (JOI17_foehn_phenomena)C++17
30 / 100
1095 ms2036 KiB
#include <bits/stdc++.h>
//qwerty47924692
using namespace std;
using ll = long long;
const ll N=2e5+29;
const string br="617283";
#define sz(a)(ll)a.size()
#define f first
#define s second
ll n,a[N],q,t,s,ans;
void upd(ll i,ll x){
    if(a[i-1]<a[i]&&i)ans+=x*abs(a[i]-a[i-1])*s;
    if(a[i-1]>a[i]&&i)ans+=x*abs(a[i]-a[i-1])*t;
    if(a[i]<a[i+1]&&i<n)ans+=x*abs(a[i+1]-a[i])*s;
    if(a[i]>a[i+1]&&i<n)ans+=x*abs(a[i+1]-a[i])*t;
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin>>n>>q>>s>>t;
    n++;
    for(ll i=0;i<n;i++){
        cin>>a[i];
        upd(i,1);
    }while(q--){
        ll l,r,x;
        cin>>l>>r>>x;
        upd(l,-1);
        upd(r,-1);
        for(ll i=l;i<=r;i++)a[i]+=x;
        upd(l,1);
        upd(r,1);
        ans=0;
        for(ll i=1;i<n;i++){
            ans+=abs(a[i]-a[i-1])*(a[i-1]<a[i] ? -s : t);
         //   cout<<a[i]<<' ';
        }
        cout<<ans<<'\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...