Pagini recente » Cod sursa (job #2126194) | Cod sursa (job #165119) | Cod sursa (job #318228) | Cod sursa (job #133830) | Cod sursa (job #1861704)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct elem { int val, pos; }x;
deque<elem> v;
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)
v.pop_back();
v.push_back(x);
s += v.front().val;
}
fout << s;
return 0;
}