Cod sursa(job #923239)
#include <fstream>
#include <deque>
using namespace std;
deque<int> v;
int vec[5000005];
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k;
int i;
fin>>n>>k;
for(i=0;i<k;i++)
{
fin>>vec[i];
while(!v.empty() && vec[v.back()]>vec[i])
v.pop_back();
v.push_back(i);
}
int sum=0;
for(;i<n;i++)
{
sum+=vec[v.front()];
while(i-k>v.front())
v.pop_front();
fin>>vec[i];
while(!v.empty() && vec[v.back()]>vec[i])
v.pop_back();
v.push_back(i);
}
sum+=vec[v.front()];
fout<<sum<<'\n';
fin.close();
fout.close();
//system("PAUSE");
return 0;
}