Pagini recente » Cod sursa (job #1650124) | Cod sursa (job #3260512) | Cod sursa (job #856237) | Cod sursa (job #23713) | Cod sursa (job #1905483)
#include <stdio.h>
#include <deque>
using namespace std;
FILE *fin = fopen("deque.in", "r");
FILE *fout = fopen("deque.out", "w");
#define MAXN 5000001
deque <int> q;
int N, K;
int v[MAXN];long long sum;
int main() {
fscanf(fin, "%d%d", &N, &K);
for(int i = 1;i <= N;i++) {
fscanf(fin, "%d", &v[i]);
}
for(int i = 1;i <= N;i++) {
while(!q.empty() && v[i] <= v[q.back()])
q.pop_back();
q.push_back(i);
if(q.front() == i - K)
q.pop_front();
if(i >= K)
sum += 1LL * v[q.front()];
}
fprintf(fout, "%lld", sum);
fclose(fin);
fclose(fout);
return 0;
}