Pagini recente » Cod sursa (job #3163492) | Cod sursa (job #2335246) | Cod sursa (job #2324589) | Cod sursa (job #2590302) | Cod sursa (job #1165035)
#include <fstream>
#include <deque>
using namespace std;
deque<int> coada;
int v[5000005];
int main()
{
ifstream cin("deque.in");
ofstream cout("deque.out");
int n,k,i;
cin>>n>>k;
for(i=1;i<=n;i++)
cin>>v[i];
long long int sum=0;
for(i=1;i<=n;i++)
{
while(!coada.empty())
if(coada.front()+k-1<i)
coada.pop_front();
else
break;
while(!coada.empty())
if(v[coada.front()]>=v[i])
coada.pop_back();
else
break;
coada.push_back(i);
if(i>=k)
{
sum+=v[coada.front()];
//cout<<"i="<<i<<" am adunat "<<v[coada.front()]<<endl;
}
}
cout<<sum<<'\n';
cin.close();
cout.close();
return 0;
}