Pagini recente » Cod sursa (job #2774673) | Cod sursa (job #2291220) | Cod sursa (job #2907307) | Cod sursa (job #916809) | Cod sursa (job #1861741)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
long long k,n,i,l,s,cst,cdr;
struct elem
{
int pos,val;
}x;
deque <elem> v;
int main()
{
f>>n>>k;
for(i=1;i<=k;i++)
{
f>>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++;
f>>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;
}
g<<s;
return 0;
}