Pagini recente » Cod sursa (job #2482860) | Cod sursa (job #2682317) | Cod sursa (job #696028) | Cod sursa (job #2681068) | Cod sursa (job #2155433)
#include <cstdio>
#include <deque>
using namespace std;
#define NMAX 5000005
int n, k, sum, last, a[NMAX], i;
deque<int> deq;
int main(){
FILE *fin, *fout;
fin = fopen("deque.in", "r");
fout = fopen("deque.out", "w");
fscanf(fin, "%d %d", &n, &k);
for(i=0; i<n; i++)
fscanf(fin, "%d ", &a[i]);
for(i=0; i<n; i++){
while(!deq.empty() && a[deq.back()] > a[i])
deq.pop_back();
deq.push_back(i);
if(i - k + 1 >= 0)
sum += a[deq.front()];
if(deq.front() < (i+1) - k + 1)
deq.pop_front();
}
fprintf(fout, "%d", sum);
return 0;
}