Pagini recente » Cod sursa (job #494453) | Cod sursa (job #430292) | Cod sursa (job #2506700) | Cod sursa (job #1970637) | Cod sursa (job #975342)
Cod sursa(job #975342)
#include <fstream>
#include <deque>
using namespace std;
long long int v[5000005];
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,i;
int k;
long long int sum=0;
fin>>n>>k;
deque<int> coada;
for(i=0;i<n;i++)
fin>>v[i];
for(i=0;i<n;i++)
{
while(!coada.empty())
if((coada.front()+k)<=i)
coada.pop_front();
else
break;
while(!coada.empty())
if(v[coada.back()]>=v[i])
coada.pop_back();
else
break;
coada.push_back(i);
if((i+1)>=k)
sum+=v[coada.front()];
}
fout<<sum<<'\n';
fin.close();
fout.close();
return 0;
}