Pagini recente » Cod sursa (job #6672) | Cod sursa (job #2325950) | Borderou de evaluare (job #528097) | Cod sursa (job #644713) | Cod sursa (job #2732458)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
int dq[5000001], aux[5000001];
int main(){
long long n, k;
f >> n >> k;
long long suma = 0;
int frontq = 1, backq = 0;
for (int i = 1; i <= n; i++)
f>>aux[i];
for (int i = 1; i <= n; i++){
while (frontq <= backq && aux[i] <= aux[dq[backq]])
backq--;
dq[++backq] = i;
if (dq[frontq] == i- k)
frontq ++;
if (i >= k)
suma+= aux[dq[frontq]];
}
g << suma;
return 0;
}