Cod sursa(job #1181295)
Utilizator | Data | 2 mai 2014 13:45:53 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <cstdio>
using namespace std;
#define MAX 5000001
int v[MAX], q[MAX], p, u, k, n;
long long rez;
int main()
{
int i;
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d", &n, &k);
for(i=1; i<=n; i++)
scanf("%d", v+i);
p=1;
for(i=1; i<=n; i++){
while(p<=u and v[i]<=v[q[u]]) u--;
q[++u] = i;
if(q[p]==i-k) p++;
if(i>=k)
rez += v[q[p]];
}
printf("%lld\n", rez);
return 0;
}