Pagini recente » Cod sursa (job #803189) | Cod sursa (job #993106) | Cod sursa (job #2332078) | Cod sursa (job #3189307) | Cod sursa (job #2037921)
#include <cstdio>
using namespace std;
FILE *in,*out;
const int nmax = 5000000;
int v[1+nmax],deq[1+nmax];
int main()
{
in = fopen("deque.in","r");
out = fopen("deque.out","w");
int n,k;
fscanf(in,"%d %d",&n,&k);
for(int i = 1;i <= n;i ++)
fscanf(in,"%d",&v[i]);
int i = 2;
int st,dr;
st = dr = 1;
deq[1] = 1;
long long sol = 0;
while(i <= n)
{
while(st <= dr && v[i] < v[deq[dr]])
dr --;
deq[++dr] = i;
if(i >= k)
sol += 1LL * v[deq[st]];
if(deq[dr] - deq[st] == k-1)
st ++;
i ++;
}
fprintf(out,"%lld",sol);
return 0;
}