Pagini recente » Cod sursa (job #841831) | Cod sursa (job #2904347) | Rating ioana cojocariu (ioana443) | Cod sursa (job #2335543) | Cod sursa (job #2054678)
#include <bits/stdc++.h>
using namespace std;
int N, K;
deque <int> dq;
int *v;
inline int read() {
int x = 0, sm = 1;
char ch = getchar();
while(ch != '-' && !isdigit(ch))
ch = getchar();
if(ch == '-') {
ch = getchar();
sm = -1;
}
while(isdigit(ch)) {
x = x * 10 + ch - '0', ch = getchar();
}
return x * sm;
}
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
N = read(), K = read();
v = new int[N + 1];
for(int i = 1;i <= N;i++)
v[i] = read();
long long sum = 0LL;
for(int i = 1;i <= N;i++) {
int val;
val = v[i];
while(dq.size() && v[dq.back()] >= val)
dq.pop_back();
dq.push_back(i);
if(dq.front() == i - K)
dq.pop_front();
if(i >= K)
sum += 1LL * v[dq.front()];
}
cout << sum;
return 0;
}