Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<deque>
- using namespace std;
- typedef long long int ll;
- int main()
- {
- int n,w;
- scanf("%d %d",&n,&w);
- ll arr[n+1];
- ll qs[n+1];qs[0] = 0;
- ll anssum = 0;
- ll anslen = 0;
- deque<int> dq;
- for(int i = 1 ; i <= n ; i ++){
- scanf("%lld",&arr[i]);
- qs[i] = qs[i-1] + arr[i];
- while(!dq.empty() && dq.front() < i - w)dq.pop_front();
- while(!dq.empty() && qs[dq.back()] >= qs[i-1])dq.pop_back();
- dq.push_back(i-1);
- ll sum = qs[i] - qs[dq.front()];
- ll len = i - dq.front();
- if(sum > anssum){
- anssum = sum;
- anslen = len;
- }
- else if(sum == anssum && len < anslen){
- anslen = len;
- }
- }
- printf("%lld\n%lld",anssum,anslen);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement