Submission #1318582

#TimeUsernameProblemLanguageResultExecution timeMemory
1318582bahaktlFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
68 ms7296 KiB
#include <bits/stdc++.h> #define int long long #define pb push_back using namespace std; const int N=2e5+10; const int inf=1e18; const int mod=1e9+7; int a[N],d[N]; signed main() { ios_base::sync_with_stdio(NULL); cin.tie(NULL); int T=1; // cin>>T; while(T--) { int n,q,s,t; cin>>n>>q>>s>>t; for(int i=1;i<=n+1;i++) { cin>>a[i]; } int ans=0; for(int i=2;i<=n+1;i++) { d[i]=a[i-1]-a[i]; if(d[i]<0) {ans+=d[i]*s;} else {ans+=d[i]*t;} } while(q--) { int l,r,x; cin>>l>>r>>x; l++,r++; if(d[l]<0) { ans-=d[l]*s; d[l]-=x; if(d[l]>0) ans+=d[l]*t; else ans+=d[l]*s; } else { ans-=d[l]*t; d[l]-=x; if(d[l]<0) ans+=d[l]*s; else ans+=d[l]*t; } if(r==n+1) { cout<<ans<<"\n"; continue; } if(d[r+1]<0) { ans-=d[r+1]*s; d[r+1]+=x; if(d[r+1]>0) ans+=d[r+1]*t; else ans+=d[r+1]*s; } else { ans-=d[r+1]*t; d[r+1]+=x; if(d[r+1]<0) ans+=d[r+1]*s; else ans+=d[r+1]*t; } cout<<ans<<"\n"; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...