Pagini recente » Cod sursa (job #887878) | Cod sursa (job #2763125) | Cod sursa (job #2875017) | Cod sursa (job #1863095) | Cod sursa (job #1779820)
#include <iostream>
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
deque <int> deque1,deque2;
int main()
{
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int n,k,nr,i,sum=0;
fin>>n>>k>>nr;
deque1.push_back(nr);
deque2.push_back(1);
for(i=2;i<=n;i++)
{
fin>>nr;
while(!deque1.empty()&&deque1.back()>=nr)
{
deque1.pop_back();
deque2.pop_back();
}
deque1.push_back(nr);
deque2.push_back(i);
if(i>=k)
{
if(deque2.front()<i-k+1)
{
deque1.pop_front();
deque2.pop_front();
}
sum+=deque1.front();
}
}
fout<<sum;
return 0;
}