Pagini recente » Cod sursa (job #3268867) | Cod sursa (job #2424588) | Cod sursa (job #14493) | Cod sursa (job #751963) | Cod sursa (job #2635836)
//#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
const int NMAX = 5000005;
int v[NMAX], deck[NMAX], k, n, fr, bk;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
int i;
long long s=0;
fin >> n >> k;
for(i = 1; i <= n; i++){
fin >> v[i];
}
bk = 0; fr = 1;
for(i = 1; i <= n; i++){
while(v[i] <= v[ deck[bk] ] && fr <= bk)
bk--;
deck[++bk] = i;
if(deck[fr] == i - k)
fr++;
if(i >= k)
s += v[ deck[fr] ];
}
fout << s;
return 0;
}