Submission #1069879

#TimeUsernameProblemLanguageResultExecution timeMemory
1069879n1kSjeckanje (COCI21_sjeckanje)C++17
55 / 110
2071 ms11092 KiB
#include <bits/stdc++.h> #if defined(LOCAL) #include "debug.cpp" #else #define debug(x...) 0 #endif // LOCAL using namespace std; using ll = long long; #define all(a) (a).begin(), (a).end() void solve(){ int n, q; cin >> n >> q; vector<ll> a(n); for(int i=0; i<n; i++) cin >> a[i]; auto get = [&](vector<ll> a){ vector<ll> dp(n+1); for(int i=0; i<n; i++){ ll mn=a[i], mx = a[i]; for(int j=i; j<n; j++){ mn = min(mn, a[j]); mx = max(mx, a[j]); dp[j+1]=max(dp[j+1], dp[i]+mx - mn); } } return dp[n]; }; auto fast = [&](vector<ll> a){ vector<ll> d, dp(n+1); for(int i=0; i+1<n; i++){ d.push_back(a[i+1] - a[i]); } for(int i=0; i<d.size(); i++){ // not pick dp[i+1] = max(dp[i+1], dp[i]); // pick int sgn = (i+1 == d.size() ? 0 : signbit(d[i]) != signbit(d[i+1])); dp[i+1+sgn] = max(dp[i+1+sgn], dp[i] + abs(d[i])); } return dp[d.size()]; }; while(q--){ ll l, r, add; cin>>l>>r>>add; l--, r--; for(int i=l; i<=r;i++) a[i]+=add; cout<<fast(a)<<endl; } } int main() { cin.tie(0)->sync_with_stdio(0); int t=1; //cin >> t; while(t--) solve(); }

Compilation message (stderr)

Main.cpp: In lambda function:
Main.cpp:36:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |   for(int i=0; i<d.size(); i++){
      |                ~^~~~~~~~~
Main.cpp:40:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |    int sgn = (i+1 == d.size() ? 0 : signbit(d[i]) != signbit(d[i+1]));
      |               ~~~~^~~~~~~~~~~
Main.cpp: In function 'void solve()':
Main.cpp:19:7: warning: variable 'get' set but not used [-Wunused-but-set-variable]
   19 |  auto get = [&](vector<ll> a){
      |       ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...