Cod sursa(job #542016)
Utilizator | Data | 25 februarie 2011 18:08:32 | |
---|---|---|---|
Problema | Deque | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include<stdio.h>
int A[5000001], i, cap, coada, k, s, n;
long long D[5000001];
int main()
{freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d", &n, &k);
cap=1 ; coada=0;
for(i=1 ; i<=n ; i++) scanf("%d", &A[i]);
while
(cap<=coada && A[i]<=A[D[coada]]) coada--;
A[++coada ]=i;
if (D[cap]==i-k);cap++ ;
if (i>=k) s+=A[D[cap]] ;
printf ("%lld", s);\
return 0 ;
}