Cod sursa(job #575759)
| Utilizator | Data | 8 aprilie 2011 18:41:29 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include<stdio.h>
long p, u, s, i, k, n, a[5000000], c[5000000];
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%ld %ld", &n, &k);
p = u = 1;
scanf("%ld", &a[1]);
c[1] = 1;
for (i = 2; i <= n; i ++)
{
scanf("%ld", &a[i]);
while (a[i] <= a[c[u]] && u > p) u --;
if (a[i] > a[c[u]]) u ++;
c[u] = i;
if (i - k == c[p]) p ++;
if (i >= k) s += a[c[p]];
}
printf("%ld\n", s);
return 0;
}