Pagini recente » Cod sursa (job #2881950) | Cod sursa (job #1819716) | Cod sursa (job #2917291) | Cod sursa (job #1874052) | Cod sursa (job #975340)
Cod sursa(job #975340)
#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;
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;
}