Pagini recente » Cod sursa (job #1689453) | Cod sursa (job #2123541) | Cod sursa (job #2568458) | Cod sursa (job #2479054) | Cod sursa (job #2812449)
#include<iostream>
#include<fstream>
#include<deque>
using namespace std;
struct ij
{
int val;
int pos;
};
deque <ij> st;
int n, v[1001], mi = INT_MAX, s, I, k, i;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d", &n, &k);
for( i = 1; i <= n; i++)
scanf("%d", &v[i]);
for( i = 1; i <= k; i++)
{
if(v[i] <= mi)
mi = min(mi, v[i]), I = i;
while(!st.empty() && st.front().val > v[i])
st.pop_front();
st.push_front({v[i], i});
}
s += mi;
for( i = k + 1; i <= n; i++)
{
while(!st.empty() && st.back().pos < i - k + 1)
st.pop_back();
while(!st.empty() && st.front().val > v[i])
st.pop_front();
st.push_front({v[i], i});
s += st.back().val;
}
printf("%d", s);
}