Submission #1144935

#TimeUsernameProblemLanguageResultExecution timeMemory
1144935khangrlFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
442 ms10020 KiB
#include<bits/stdc++.h> #define ff first #define ss second #define int long long #define pb push_back using namespace std; int n, q, s, t, last, st[800000]; vector <int> v; int consst(int pos, int l, int r){ if(l==r){ if(v[l]<0){ st[pos]=v[l]*(-t); } else{ st[pos]=v[l]*(-s); } return st[pos]; } int mid=(l+r)/2; st[pos]=consst(pos*2+1, l, mid)+consst(pos*2+2, mid+1, r); return st[pos]; } int upd(int pos, int l, int r, int q){ if(l==r and l==q){ if(v[l]<0){ st[pos]=v[l]*(-t); } else{ st[pos]=v[l]*(-s); } return st[pos]; } if(q<l or q>r){ return st[pos]; } int mid=(l+r)/2; st[pos]=upd(pos*2+1, l, mid, q)+upd(pos*2+2, mid+1, r, q); return st[pos]; } signed main(){ cin>>n>>q>>s>>t>>last; for(int i=1; i<=n; i++){ int a; cin>>a; v.pb(a-last); last=a; } consst(0, 0, n-1); while(q--){ int l, r, k; cin>>l>>r>>k; v[l-1]+=k; v[r]-=k; upd(0, 0, n-1, l-1); upd(0, 0, n-1, r); cout<<st[0]<<endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...