Submission #146609

#TimeUsernameProblemLanguageResultExecution timeMemory
146609sofhiasouzaFoehn Phenomena (JOI17_foehn_phenomena)C++14
30 / 100
1024 ms10364 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int ll; const int maxn = 2e5+10; ll n, q, a[maxn]; ll sum, dif[maxn], s, t; int main() { cin >> n >> q >> s >> t; for(int i = 0 ; i <= n ; i++) cin >> a[i]; for(int i = 1 ; i <= n ; i++) { dif[i] = a[i]-a[i-1]; if(dif[i] <= 0) sum += abs(dif[i]*t); else sum -= abs(dif[i]*s); } //cout << sum << endl; dif[0] = dif[n+1] = 0; //for(int i = 1 ; i <= n ; i++) cout << dif[i] << ' '; //cout << endl; for(int i = 0 ; i < q ; i++) { int l, r, x; cin >> l >> r >> x; //cout << dif[l] << ' ' << dif[r+1] << endl; if(dif[l] <= 0) sum -= abs(dif[l]*t); else sum += abs(dif[l]*s); if(dif[r+1] <= 0) sum -= abs(dif[r+1]*t); else sum += abs(dif[r+1]*s); dif[l] += x; if(r+1 <= n) dif[r+1] -= x; if(dif[l] <= 0) sum += abs(dif[l]*t); else sum -= abs(dif[l]*s); if(dif[r+1] <= 0) sum += abs(dif[r+1]*t); else sum -= abs(dif[r+1]*s); //cout << dif[l] << ' ' << dif[r+1] << endl; cout << sum << endl; // for(int i = 1 ; i <= n ; i++) cout << dif[i] << ' '; // cout << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...