fork download
  1. #include <iostream>
  2. #include <cmath>
  3. #include <climits>
  4. #define ll long long
  5.  
  6. using namespace std;
  7. int main() {
  8. int n,k; cin>>n>>k;
  9. int* arr = new int[n+1]();
  10. for(int i =1; i<=n; ++i) cin>>arr[i];
  11. ll* f = new ll[n+1]();
  12. ll* b = new ll[n+1]();
  13.  
  14. if(k+1 <=n && k+2 <= n) { f[k+1] = arr[k+1]; f[k+2] = arr[k+2]; }
  15. else if(k+1 <= n ) f[k+1] = arr[k+1];
  16.  
  17. for(int i = k+ 3; i<=n; ++i)
  18. f[i] = max(f[i-1],f[i-2]) + arr[i];
  19.  
  20. b[1] = arr[1]; b[2] = arr[1] + arr[2];
  21. for(int i = 3; i <= n; ++i)
  22. b[i] = max(b[i-1],b[i-2]) + arr[i];
  23.  
  24. ll ans = INT_MIN;
  25. for(int i =k; i<=n ;++i)
  26. ans = max(ans, f[i] + b[i] - arr[i]);
  27.  
  28. cout<<ans;
  29.  
  30. }
Time limit exceeded #stdin #stdout 5s 4145188KB
stdin
Standard input is empty
stdout
Standard output is empty