Submission #1240223

#TimeUsernameProblemLanguageResultExecution timeMemory
1240223ssitaramSjeckanje (COCI21_sjeckanje)C++20
0 / 110
0 ms320 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, q; cin >> n >> q; ll smabs = 0, smc = 0; vector<ll> D(n - 1); vector<int> a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; if (i > 0) { D[i - 1] = a[i] - a[i - 1]; smabs += abs(D[i - 1]); } } auto junct = [&](int i) -> ll { if (i >= n - 2 || i < 0) return 0; if ((D[i] > 0 && D[i + 1] < 0) || (D[i] < 0 && D[i + 1] > 0)) return min(abs(D[i]), abs(D[i + 1])); return 0; }; for (int i = 0; i < n - 2; ++i) { smc += junct(i); } auto add = [&](int i, int x) -> void { if (i < 0 || i >= n - 1) return; smc -= junct(i - 1); smc -= junct(i); smabs -= abs(D[i]); D[i] += x; smabs += abs(D[i]); smc += junct(i - 1); smc += junct(i); }; while (q--) { int l, r, x; cin >> l >> r >> x; --l; --r; add(l - 1, x); add(r, -x); cout << smabs - smc << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...