Submission #751095

#TimeUsernameProblemLanguageResultExecution timeMemory
751095vjudge1Foehn Phenomena (JOI17_foehn_phenomena)C++17
100 / 100
400 ms11540 KiB
#include<bits/stdc++.h> using namespace std; void solve(){ long long n, q, s, t, suhu; cin >> n >> q >> s >> t; long long diff[n]; long long a, b; cin >> a; suhu=0; for(int i=0;i<n;i++){ cin >> b; diff[i]=a-b; if(diff[i]<0){ suhu+=diff[i]*s; }else{ suhu+=diff[i]*t; } a=b; } for(int i=0; i<q; i++){ long long l, r, x; cin >> l >> r >> x; if(diff[l-1]-x>=0 && diff[l-1]<=0){ suhu-=diff[l-1]*s; suhu+=(diff[l-1]-x)*t; diff[l-1]-=x; }else if(diff[l-1]-x<=0 && diff[l-1]<=0){ suhu-=x*s; diff[l-1]-=x; }else if(diff[l-1]-x<=0 && diff[l-1]>=0){ suhu-=diff[l-1]*t; suhu+=(diff[l-1]-x)*s; diff[l-1]-=x; }else if(diff[l-1]-x>=0 && diff[l-1]>=0){ suhu-=x*t; diff[l-1]-=x; } if(r<n){ if(diff[r]+x>=0 && diff[r]<=0){ suhu-=diff[r]*s; suhu+=(diff[r]+x)*t; diff[r]+=x; }else if(diff[r]+x<=0 && diff[r]<=0){ suhu+=x*s; diff[r]+=x; }else if(diff[r]+x<=0 && diff[r]>=0){ suhu-=diff[r]*t; suhu+=(diff[r]+x)*s; diff[r]+=x; }else if(diff[r]+x>=0 && diff[r]>=0){ suhu+=x*t; diff[r]+=x; } } cout << suhu << endl; } } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...