Submission #946956

#TimeUsernameProblemLanguageResultExecution timeMemory
946956mariamp1Foehn Phenomena (JOI17_foehn_phenomena)C++14
0 / 100
287 ms3972 KiB
#include <iostream> #include <vector> #include <algorithm> typedef long long int ll; using namespace std; const int maxn = 2e5+10; int n, q, a[maxn]; int sum, dif[maxn], s, t; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); 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] << ' '; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...