Pagini recente » Cod sursa (job #240080) | Cod sursa (job #322484) | Clasament Algoritmiada 2016 Runda 3 Juniori | Istoria paginii utilizator/breje_raul | Cod sursa (job #3284552)
#include <fstream>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
int a[5000000];
int dq[5000000];
int main() {
int n, k,s = 0;
int ic = 0, sf = -1;
cin >> n >> k;
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
for (int i = 0; i < n; ++i) {
if (ic <= sf && dq[ic] < i - k + 1) {
ic++;
}
while (ic <= sf && a[dq[sf]] > a[i]) {
sf--;
}
dq[++sf] = i;
if (i >= k - 1) {
s += a[dq[ic]];
}
}
cout << s ;
return 0;
}