Pagini recente » Cod sursa (job #2422650) | Cod sursa (job #3241441) | Cod sursa (job #2264683) | Cod sursa (job #37480) | Cod sursa (job #2263083)
#include <fstream>
#include <deque>
FILE *fin = freopen("deque.in","r",stdin);
FILE *fout = freopen("deque.out","w",stdout);
static const int NMAX = 5e6 + 5;
/* -------- DATA ---------- */
int n, k,v[NMAX];
std::deque<int> deq;
/* -------- DATA ---------- */
int main()
{
scanf("%d%d", &n, &k);
for(int i = 1; i<= n; ++i)
scanf("%d", &v[i]);
long long sum =0;
for(int i = 1; i<= n; ++i)
{
while(!deq.empty() && v[i] <= v[deq.back()])
deq.pop_back();
deq.push_back(i);
if(!deq.empty() && i - deq.front() == k)
deq.pop_front();
if(i>=k)
sum+= v[deq.front()];
}
printf("%lld",sum);
return 0;
}