Pagini recente » Cod sursa (job #187118) | Cod sursa (job #2812953) | Cod sursa (job #1126154) | Cod sursa (job #516453) | Cod sursa (job #517652)
Cod sursa(job #517652)
#include<stdio.h>
#include<deque>
using namespace std;
FILE *in=fopen("deque.in","r"),*out=fopen("deque.out","w");
struct ll{int a;int b;};
deque<ll> D;
int main()
{
int i,N,K;
int x,S=0;
ll george;
fscanf(in,"%d %d",&N,&K);
for(i=1;i<=N;++i)
{
fscanf(in,"%d",&x);
if(!D.empty())
{
while(D.front().b<i+1-K)
D.pop_front();
while(D.back().a>x&&!D.empty())
D.pop_back();
}
george.a=x;
george.b=i;
D.push_back(george);
if(i>=K)
S+=D.front().a;
}
fprintf(out,"%d\n",S);
fclose(in);
fclose(out);
return 0;
}