Submission #880371

#TimeUsernameProblemLanguageResultExecution timeMemory
880371JakobZorzFoehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
92 ms12436 KiB
#include<iostream> #include<vector> #include<queue> #include<stack> #include<algorithm> #include<limits.h> #include<math.h> #include<map> #include<set> #include<unordered_map> #include<unordered_set> #include<iomanip> #include<cstring> typedef long long ll; typedef unsigned long long ull; typedef long double ld; using namespace std; //const int MOD=1e9+7; //typedef pair<ll,ll>Point; //typedef pair<ll,ll>Line; //#define x first //#define y second void solve(){ int n,q,s,t; cin>>n>>q>>s>>t; vector<int>arr(n+1); for(int&i:arr) cin>>i; vector<ll>diff(n); ll res=0; for(int i=0;i<n;i++){ diff[i]=arr[i+1]-arr[i]; if(diff[i]>0){ res-=diff[i]*s; }else{ res-=diff[i]*t; } } while(q--){ int l,r,x; cin>>l>>r>>x; l--; //if(l!=-1){ if(diff[l]>0){ res+=diff[l]*s; }else{ res+=diff[l]*t; } diff[l]+=x; if(diff[l]>0){ res-=diff[l]*s; }else{ res-=diff[l]*t; } //} if(r!=n){ if(diff[r]>0){ res+=diff[r]*s; }else{ res+=diff[r]*t; } diff[r]-=x; if(diff[r]>0){ res-=diff[r]*s; }else{ res-=diff[r]*t; } } cout<<res<<"\n"; } } int main(){ ios::sync_with_stdio(false);cout.tie(NULL);cin.tie(NULL); //freopen("bank.in","r",stdin);freopen("bank.out","w",stdout); int t=1;//cin>>t; while(t--)solve(); return 0; } /* 3 5 1 2 0 4 1 8 1 2 2 1 1 -2 2 3 5 1 2 -1 1 3 5 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...