Pagini recente » Cod sursa (job #711867) | Cod sursa (job #2175578) | Cod sursa (job #263187) | Cod sursa (job #2928242) | Cod sursa (job #2617236)
#include <iostream>
#include <fstream>
#define maxi 5000010
int A[maxi],deq[maxi];
int fr, b;
void pop_front()
{
fr++;
}
void pop_back()
{
b--;
}
void push_back(int val)
{
b++;
deq[b]=val;
}
using namespace std;
int main()
{
ifstream f ("deque.in");
ofstream g ("deque.out");
int N,K;
long long s=0;
f>>N>>K;
for(int i=1;i<=N;i++)
f>>A[i];
fr=1;b=0;
for(int i=1;i<=N;i++)
{
while(fr<=b && A[i]<=A[deq[b]])
pop_back();
push_back(i);
if(deq[fr]==i-K) pop_front();
if(i>=K)
s+=A[deq[fr]];
}
g<<s;
}