Cod sursa(job #1632028)
| Utilizator | Data | 5 martie 2016 21:01:48 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <stdio.h>
int b,e;
int v[5000000];
int dq[5000000];
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int n,k,i,j;
long long sum = 0;
scanf("%d %d\n",&n,&k);
for(i = 1; i <= n; ++i)
scanf("%d",&v[i]);
b = 0; e = 0;
for(i = 1; i <= n; ++i)
{
while(b <= e && v[dq[e]] >= v[i])
--e;
dq[++e] = i;
if(dq[b] == i - k)
++b;
if(i >= k)
sum += v[dq[b]];
}
printf("%d\n",sum);
return 0;
}
