Pagini recente » Cod sursa (job #3229485) | Cod sursa (job #1655332) | Cod sursa (job #3131013) | Cod sursa (job #797616) | Cod sursa (job #1804053)
#include <bits/stdc++.h>
using namespace std;
FILE *f = fopen("deque.in", "r");
FILE *g = fopen("deque.out", "w");
int n, k, st, dr;
int V[5000001], Deque[5000001];
long long s;
int main()
{
fscanf(f, "%d %d", &n, &k);
for(int i = 1; i <= n; i++)
fscanf(f, "%d", &V[i]);
st = 1, dr = 0;
for(int i = 1; i <= n; i++)
{
while(V[i] <= V[Deque[dr]] && st <= dr) dr--;
Deque[++dr] = i;
if(Deque[st] == Deque[dr] - k) st++;
if(i >= k) s += V[Deque[st]];
}
fprintf(g, "%lld", s);
return 0;
}