Pagini recente » Cod sursa (job #2121409) | Cod sursa (job #1947690) | Cod sursa (job #2050603) | Cod sursa (job #319935) | Cod sursa (job #2938399)
#include <iostream>
#include <fstream>
#define Nmax 5000000
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int n, k, front, back, size;
int v[Nmax], q[Nmax];
long long sum=0;
int main()
{
fin>>n>>k;
for (int i=0; i<n; i++)
fin>>v[i];
for (int i=0; i<k-1; i++){
while (size!=0 && v[q[back-1]]>=v[i]){
back--; size--;
}
if (size!=0 && q[front]+k==i){
front++; size--;
}
q[back++]=i;
size++;
}
for (int i=k-1; i<n; i++){
while (size!=0 && v[q[back-1]]>=v[i]){
back--; size--;
}
if (size!=0 && q[front]+k==i){
front++; size--;
}
q[back++]=i;
size++;
sum+=v[q[front]];
}
fout<<sum;
return 0;
}