Advertisement
Vince14

15678

Mar 19th, 2023
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | Source Code | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <vector>
  7. #include <set>
  8. #include <map>
  9. #include <stack>
  10. #include <queue>
  11. #include <deque>
  12. #include <unordered_map>
  13. #include <iomanip>
  14. #include <regex>
  15. #include <numeric>
  16. using namespace std;
  17. #define pii pair<long long , long long>
  18. #define FAST ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
  19. const long long dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
  20. const long long MAX = 100005;
  21.  
  22. long long n, d;
  23. long long arr[MAX], dp[MAX];
  24. deque<long long> dq;
  25.  
  26. int main() {
  27.     //freopen("talent.in", "r", stdin);
  28.     //freopen("talent.out", "w", stdout);
  29.     FAST;
  30.     cin >> n >> d;
  31.     for(long long i = 0; i < n; i++){
  32.         cin >> arr[i];
  33.     }
  34.     long long ans = -2e9;
  35.     for(long long i = n - 1; i >= 0; i--){
  36.         dp[i] = arr[i];
  37.         if(!dq.empty()){
  38.             dp[i] = max(dp[i], dp[dq.front()] + arr[i]);
  39.         }
  40.         //cout << i << " " << dp[i] << "\n";
  41.         ans = max(ans, dp[i]);
  42.  
  43.         if(i >= n - d){
  44.             while(!dq.empty() and dp[i] >= dp[dq.back()]){
  45.                 dq.pop_back();
  46.             }
  47.             dq.push_back(i);
  48.         }
  49.         else{
  50.             while(!dq.empty() and dq.front() >= i + d){
  51.                 dq.pop_front();
  52.             }
  53.             while(!dq.empty() and dp[i] >= dp[dq.back()]){
  54.                 dq.pop_back();
  55.             }
  56.             dq.push_back(i);
  57.         }
  58.     }
  59.     cout << ans << "\n";
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement