Advertisement
SuitNdtie

Barrier

May 11th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<deque>
  3. using namespace std;
  4. typedef long long int ll;
  5. int main()
  6. {
  7.     int n,w;
  8.     scanf("%d %d",&n,&w);
  9.     ll arr[n+1];
  10.     ll qs[n+1];qs[0] = 0;
  11.     ll anssum = 0;
  12.     ll anslen = 0;
  13.     deque<int> dq;
  14.     for(int i = 1 ; i <= n ; i ++){
  15.         scanf("%lld",&arr[i]);
  16.         qs[i] = qs[i-1] + arr[i];
  17.        
  18.         while(!dq.empty() && dq.front() < i - w)dq.pop_front();
  19.         while(!dq.empty() && qs[dq.back()] >= qs[i-1])dq.pop_back();
  20.         dq.push_back(i-1);
  21.        
  22.         ll sum = qs[i] - qs[dq.front()];
  23.         ll len = i - dq.front();
  24.         if(sum > anssum){
  25.             anssum = sum;
  26.             anslen = len;
  27.         }
  28.         else if(sum == anssum && len < anslen){
  29.             anslen = len;
  30.         }
  31.     }
  32.     printf("%lld\n%lld",anssum,anslen);
  33.     return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement