Cod sursa(job #254004)
| Utilizator | Data | 6 februarie 2009 15:08:11 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include<stdio.h>
#define maxn 5000001
int a[maxn],c[maxn],n,k,i,st,sf,s;
int main()
{freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
st=1;
sf=0;
for(i=1;i<=n;i++)
{ while(st<=sf&&a[i]<a[c[sf]])
sf--;
c[++sf]=i;
if(c[st]==i-k)
st++;
if(i>=k)
s+=a[c[st]];
}
printf("%d",s);
return 0; }