Pagini recente » Cod sursa (job #1197053) | Borderou de evaluare (job #1959968) | Cod sursa (job #2148892) | Cod sursa (job #46246) | Cod sursa (job #1722536)
#include<iostream>
#include<fstream>
#include<deque>
#include<algorithm>
using namespace std;
ifstream si("deque.in");
ofstream so("deque.out");
deque<int> v;
deque<int> p;
int main()
{
int n,k;
si>>n>>k;
int a,i;
for(i=0;i<k;++i)
{
si>>a;
while(v.size()>0&&v.back()>a)
{
v.pop_back();
p.pop_back();
}
v.push_back(a);
p.push_back(i);
}
long long s;
s=1LL*v.front();
for(;i<n;++i)
{
si>>a;
while(v.size()>0&&v.back()>a)
{
v.pop_back();
p.pop_back();
}
v.push_back(a);
p.push_back(i);
if(p.front()==i-k)
{
p.pop_front();
v.pop_front();
}
s=s+1LL*v.front();
}
so<<s<<'\n';
return 0;
}