Pagini recente » Profil al3xandru | Cod sursa (job #2259009) | Istoria paginii utilizator/babypink05 | Cod sursa (job #248168) | Cod sursa (job #1491544)
#include <deque>
#include <iostream>
using namespace std;
deque<int> vals, poss;
int n, k, i, nmb, min_nmb, j;
long long sum = 0;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d",&n,&k);
for (i = 0; i < n; ++i)
{
min_nmb = 10000001;
scanf("%d",&nmb);
while (vals.size()>0 && vals.at(vals.size() - 1) >= nmb)
vals.pop_back(), poss.pop_back();
while (poss.size()>0 && poss.at(0) < i - k + 1) poss.pop_front(), vals.pop_front();
vals.push_back(nmb), poss.push_back(i);
if (i + 1 >= k) sum += vals.at(0);
}
cout << sum;
}