Submission #209149

#TimeUsernameProblemLanguageResultExecution timeMemory
209149bensonlzlFoehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
142 ms7416 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll N, Q, S, T, X, L, R, diff[200005], cont[200005], init = 0; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> N >> Q >> S >> T; S = -S; T = -T; for (int i = 0; i <= N; ++i){ cin >> diff[i]; } for (int i = N; i >= 1; --i){ diff[i] -= diff[i-1]; } for (int i = 1; i <= N; ++i){ if (diff[i] < 0) cont[i] = T*diff[i]; else cont[i] = S*diff[i]; init += cont[i]; } for (int i = 1; i <= Q; ++i){ cin >> L >> R >> X; init -= cont[L]; if (R < N) init -= cont[R+1]; diff[L] += X; if (R < N) diff[R+1] -= X; if (diff[L] < 0) cont[L] = T*diff[L]; else cont[L] = S*diff[L]; if (diff[R+1] < 0) cont[R+1] = T*diff[R+1]; else cont[R+1] = S*diff[R+1]; init += cont[L]; if (R < N) init += cont[R+1]; cout << init << '\n'; /* for (int j = 1; j <= N; ++j){ cout << diff[j] << ' '; } cout << '\n'; */ } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...