Pagini recente » Cod sursa (job #102764) | Cod sursa (job #118450) | Cod sursa (job #481528) | Cod sursa (job #1837757) | Cod sursa (job #2108009)
#define NMax 5000005
#include <cstdio>
using namespace std;
FILE *f = fopen("deque.in", "r");
FILE *g = fopen("deque.out", "w");
int n, k, Deque[NMax], v[NMax], Front, Back;
long long s;
int main()
{
fscanf(f, "%d %d", &n, &k);
for(int i = 1; i <= n; i++)
fscanf(f, "%d", &v[i]);
Front = 1;
Back = 0;
for(int i = 1; i <= n; i++)
{
while(Front <= Back && v[i] <= v[Deque[Back]]) Back--;
Deque[++Back] = i;
if(Deque[Front] == i - k ) Front++;
if(i >= k) s+=v[Deque[Front]];
}
fprintf(g, "%lld", s);
fclose(f);
fclose(g);
return 0;
}