Pagini recente » Cod sursa (job #346921) | Cod sursa (job #110656) | Cod sursa (job #1184600) | Cod sursa (job #1431408) | Cod sursa (job #3148258)
#include <iostream>
#include <deque>
using namespace std;
FILE *in = fopen("deque.in", "r"), *out = fopen("deque.out", "w");
int N, K, val;
int A[5000005];
long long int sum = 0;
std::deque<int> D;
int main()
{
fscanf(in, "%d %d", &N, &K);
for (int i = 1; i <= N; ++i){
fscanf(in, "%d", &val);
A[i] = val;
while(!D.empty() && A[D.back()] > val)
D.pop_back();
D.push_back(i);
if(D.front() == i - K)
D.pop_front();
if (i >= K)
sum += A[D.front()];
}
fprintf(out, "%lld", sum);
return 0;
}