Pagini recente » Cod sursa (job #1904960) | Cod sursa (job #2168688) | Cod sursa (job #955861) | Cod sursa (job #581632) | Cod sursa (job #2144902)
#include<stdio.h>
#include<limits.h>
#include<algorithm>
#define MAXN 5000000
#define INF INT_MAX
FILE*fin,*fout;
int deq[MAXN+1],pr=0,ult=-1;
int v[MAXN+1];
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;
}