Pagini recente » Cod sursa (job #25646) | Cod sursa (job #3139508) | Cod sursa (job #1849277) | Cod sursa (job #2090379) | Cod sursa (job #2106881)
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
#include <climits>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct elem
{
long long n;
int pos;
elem(long long nr, int position)
:n(nr), pos(position){}
};
deque<elem> d;
int main()
{
long long N, K, i, x, res=0;
f>>N>>K;
for(i=0;i<N;i++)
{
f>>x;
while(d.size()&&d.front().pos<i-K+1)d.pop_front();
while(d.size()&&d.back().n>x)d.pop_back();
d.push_back(elem(x, i));
if(i>=K-1)res+=d.front().n;
}
g<<res;
f.close();
g.close();
return 0;
}
/**f>>a>>b;
i=min(a, b);
while(f>>c)
{
i=min(i, c);
res+=i;
a=b;
b=c;
i=min(a, b);
}
g<<res;*/