Pagini recente » Cod sursa (job #51384) | Cod sursa (job #981198) | Cod sursa (job #473197) | Cod sursa (job #2037054) | Cod sursa (job #2881079)
#include <fstream>
#include <iostream>
#define dim 5000010
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
int v[dim], dek[dim];
int main() {
long long sum = 0;
int n, k, nr;
int front = 1, back = 0;
fin >> n >> k;
for(int i = 1; i <= n; i++) {
fin >> v[i];
}
for(int i = 1; i <= n; i++) {
while( front <= back && v[i] <= v[ dek[back] ] )
back--;
dek[++back] = i;
if(dek[front] == i - k)
front++;
if(i >= k)
sum += v[ dek[front] ];
// std::cout << v[ dek[front] ] << " ";
}
// std::cout << '\n' << sum << '\n';
fout << sum;
return 0;
}