Pagini recente » Cod sursa (job #644979) | Cod sursa (job #2279843) | Cod sursa (job #1329664) | Cod sursa (job #2135846) | Cod sursa (job #2144914)
#include<stdio.h>
#include<limits.h>
#include<algorithm>
#define MAXN 5000000
#define INF INT_MAX
FILE*fin,*fout;
int deq[MAXN+2],pr=0,ult=-1;
int v[MAXN+2];
int main()
{
fin=fopen("deque.in","r");
fout=fopen("deque.out","w");
int N,K;
fscanf(fin,"%d%d",&N,&K);
long long ans=0;
int firstmin=INF;
for(int i=1;i<=N;i++)
{
fscanf(fin,"%d",&v[i]);
}
for(int i=1;i<=N;i++)
{
if(pr<=ult)
{
while(v[i]<=v[deq[ult]] && pr<=ult)
{
ult--;
}
}
deq[++ult]=v[i];
if(deq[pr]<(i-K+1))
{
ans+=1LL*v[deq[pr]];
pr++;
}
}
ans+=1LL*v[deq[pr]];
fprintf(fout,"%lld",ans);
fclose(fin);
fclose(fout);
return 0;
}