Pagini recente » Cod sursa (job #806041) | Cod sursa (job #806045) | Cod sursa (job #806044) | Cod sursa (job #806072) | Cod sursa (job #2822985)
#include <fstream>
#include <deque>
#include <climits>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
deque < int > dq;
//unsigned long long
long long int n, k, v[5000001], s;
int main()
{
cin>>n>>k;
for(int i=0; i<n; i++)
{
cin>>v[i];
}
for(int i=0;i<k; i++)
{
while(!dq.empty() && dq.back()>v[i])
{
dq.pop_back();
}
dq.push_back(v[i]);
}
s+=1LL*dq.front();
for(int i=0; i<n-k; i++)
{
if(!dq.empty() && dq.front()==v[i])
{
dq.pop_front();
}
int next=v[i+k];
while(!dq.empty() && dq.back()>next)
{
dq.pop_back();
}
dq.push_back(next);
s=s+1LL*dq.front();
}
cout<<s;
return 0;
}