Submission #1180293

#TimeUsernameProblemLanguageResultExecution timeMemory
1180293Paz15Foehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
61 ms7312 KiB
//fast #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define rep(n) for(int i = 0 ; i<n ; i++) #define all(x) x.begin(),x.end() #define pb push_back ll s,t,n; const int base = 2e5+7; ll alt[base]; ll diff[base]; ll update(int a, int b){ ll w = 0; if (diff[a-1]<0){ w+=diff[a-1]*s; }else w+=diff[a-1]*t; if (b!=n){ if (diff[b]<0){ w+=diff[b]*s; }else w+=diff[b]*t; } return w; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int q; cin >> n >> q >> s >> t; ll sum = 0; cin >> alt[0]; rep(n){ cin >> alt[i+1]; if (alt[i]>alt[i+1]){ sum+=(alt[i]-alt[i+1])*t; }else sum+=(alt[i]-alt[i+1])*s; diff[i] = alt[i]-alt[i+1]; } while (q--){ int l,r,x; cin >> l >> r >> x; sum-=update(l,r); diff[l-1]-=x; diff[r]+=x; sum+=update(l,r); cout << sum << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...