Submission #1152557

#TimeUsernameProblemLanguageResultExecution timeMemory
1152557itslqSjeckanje (COCI21_sjeckanje)C++20
15 / 110
2098 ms211800 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int N; vector<int> A; int solve() { int val[N][N], dp[N]; pair<int, int> interval[N][N]; // for (int i = 0; i < N; i++) cout << A[i] << " "; // cout << endl; for (int i = 0; i < N; i++) { interval[i][i] = make_pair(A[i], A[i]); val[i][i] = 0; } for (int i = 1; i < N; i++) { // cout << endl; for (int j = 0; j + i < N; j++) { interval[j][j + i] = make_pair( max(interval[j][j + i - 1].first, A[j + i]), min(interval[j][j + i - 1].second, A[j + i]) ); val[j][j + i] = interval[j][j + i].first - interval[j][j + i].second; // cout << j << "/" << j + i << "/" << interval[j][j + i].first << "/" << interval[j][j + i].second << " - "; } } for (int i = 0; i < N; i++) { dp[i] = 0; for (int j = 0; j < i; j++) { dp[i] = max(dp[i], (j ? dp[j - 1] : 0) + val[j][i]); } } return dp[N - 1]; } signed main() { int Q, l, r, x; cin >> N >> Q; A = vector<int>(N); for (int i = 0; i < N; i++) cin >> A[i]; while (Q--) { cin >> l >> r >> x; --l; --r; for (int i = l; i <= r; i++) A[i] += x; cout << solve() << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...