Cod sursa(job #1248085)
Utilizator | Data | 24 octombrie 2014 16:58:34 | |
---|---|---|---|
Problema | Deque | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include <cstdio>
using namespace std;
int v[5000001],d[5000001],sfarsit,ln=1;
int main()
{ freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int n,k,i,sum=0;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{ scanf("%d",&v[i]);
if((i-k+1)>d[ln])
ln++;
while(v[i]<v[d[sfarsit]] && sfarsit>=ln)
sfarsit--;
d[sfarsit++]=i;
if(i>=k)
{ sum=sum+v[d[ln]];
}
}
printf("%d\n",sum);
return 0;
}