Pagini recente » Cod sursa (job #1002550) | Cod sursa (job #595875) | Cod sursa (job #268570) | Cod sursa (job #188645) | Cod sursa (job #2932546)
#include <fstream>
#include <climits>
using namespace std;
int v[5000001], coada[5000001];
int main() {
ifstream cin ("deque.in");
ofstream cout ("deque.out");
int n, k, inc, sf;
long long s;
cin >> n >> k;
inc = 0;
sf = 0;
s = 0;
v[0]=INT_MIN;
for (int i = 1; i <= n; i++) {
cin >> v[i];
if (i < k) {
while (sf >= inc && v[i] < v[coada[sf]])
sf--;
coada[++sf] = i;
} else {
if (i - k + 1 > coada[inc])
inc++;
while (sf >= inc && v[i] < v[coada[sf]])
sf--;
coada[++sf] = i;
s += v[coada[inc]];
}
}
cout << s;
return 0;
}