# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1261741 | KALARRY | Sjeckanje (COCI21_sjeckanje) | C++20 | 2095 ms | 520 KiB |
//chockolateman
#include<bits/stdc++.h>
using namespace std;
long long N,Q,a[200005],dp[200005];
long long calc()
{
long long ret = 0;
for(int i = 1 ; i <= N ; i++)
{
dp[i] = dp[i-1];
long long maxim = a[i];
long long minim = a[i];
for(int j = i-1 ; j >= 1 && (maxim==a[i]||minim==a[i]) ; j--)
{
if(a[j] <= maxim && a[j] >= minim)
continue;
maxim = max(maxim,a[j]);
minim = min(minim,a[j]);
dp[i] = max(dp[i],maxim - minim + dp[j-1]);
}
}
return dp[N];
}
int main()
{
scanf("%lld%lld",&N,&Q);
for(int i = 1 ; i <= N ; i++)
scanf("%lld",&a[i]);
for(int l,r,x,i = 1 ; i <= Q ; i++)
{
scanf("%d%d%d",&l,&r,&x);
for(int j = l ; j <= r ; j++)
a[j] += x;
printf("%lld\n",calc());
}
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |