Pagini recente » Cod sursa (job #1883451) | Cod sursa (job #1147712) | Cod sursa (job #758275) | Cod sursa (job #210289) | Cod sursa (job #2059501)
#include <iostream>
#include <stdio.h>
using namespace std;
int v[5000000], d[5000000];
int main()
{
FILE *fin,*fout;
int st, dr, n, i, k, sum;
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",&v[i]);
}
st = 0;
dr = 1;
sum = 0;
for( i = 0; i <= n; i++ ){
if( st <= dr && d[st] == i - k )
st++;
while( st <= dr && v[i] <= v[d[dr]] )
dr--;
d[++dr] = i;
if( i >= k - 1 )
sum = sum + v[d[st]];
}
fprintf(fout,"%d",sum);
fclose(fin);
fclose(fout);
return 0;
}