Pagini recente » Cod sursa (job #2699843) | Cod sursa (job #672932) | Cod sursa (job #2687691) | Cod sursa (job #648800) | Cod sursa (job #1861700)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque<elem> x;
struct elem { int val, pos; };
long long n, k, i, l, s, cst, cdr;
int main()
{
fin >> n >> k;
for(i=1;i<=k;i++)
{
fin >> x.val;
x.pos = i;
while (!v.empty() && v.back().val > x.val)
v.pop_back();
v.push_back(x);
}
cst = 1;cdr = k;s = v.front().val;
for(i=k+1;i<=n;i++)
{
cst++;
cdr++;
fin >> x.val;x.pos = i;
if (v.front().pos < cst)v.pop_front;
while (!v.empty() && v.back().val > x.val)
x.pop_back();
v.push_pop(x);
s += v.front().val;
}
fout << s;
return 0;
}