제출 #1046762

#제출 시각아이디문제언어결과실행 시간메모리
1046762DeathIsAweFoehn Phenomena (JOI17_foehn_phenomena)C++14
10 / 100
331 ms7248 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) { diffs[a - 1] += c; ans -= s * c; if (diffs[a - 1] < 0) { ans -= (-s + t) * diffs[a - 1]; } } else { diffs[a - 1] += c; ans -= t * c; if (diffs[a - 1] > 0) { ans -= (s - t) * diffs[a - 1]; } } if (b != n) { if (diffs[b] > 0) { diffs[b] -= c; ans += s * c; if (diffs[b] < 0) { ans += (s - t) * diffs[b]; } } else { diffs[b] -= c; ans += t * c; if (diffs[b] > 0) { ans += (-s + t) * diffs[a - 1]; } } } cout << ans << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...