Submission #1046764

#TimeUsernameProblemLanguageResultExecution timeMemory
1046764DeathIsAweFoehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
381 ms13140 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define int long long int32_t main() { int n, q, s, t; cin >> n >> q >> s >> t; vector<int> altitudes(n + 1), diffs(n); for (int i=0;i<n+1;i++) { cin >> altitudes[i]; } ll ans = 0; for (int i=0;i<n;i++) { diffs[i] = altitudes[i+1] - altitudes[i]; if (diffs[i] < 0) { ans -= t * diffs[i]; } else { ans -= s * diffs[i]; } } int a, b, c; for (int i=0;i<q;i++) { cin >> a >> b >> c; if (diffs[a - 1] > 0) { ans += s * diffs[a - 1]; } else { ans += t * diffs[a - 1]; } diffs[a - 1] += c; if (diffs[a - 1] > 0) { ans -= s * diffs[a - 1]; } else { ans -= t * diffs[a - 1]; } if (b != n) { if (diffs[b] > 0) { ans += s * diffs[b]; } else { ans += t * diffs[b]; } diffs[b] -= c; if (diffs[b] > 0) { ans -= s * diffs[b]; } else { ans -= t * diffs[b]; } } cout << ans << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...