Pagini recente » Istoria paginii utilizator/serban2000 | Istoria paginii utilizator/vladandrei51 | Monitorul de evaluare | Istoria paginii utilizator/bindeacristian | Cod sursa (job #2100073)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k, x;
deque <int> dq;
deque <int> idx;
int main()
{
long long res = 0;
fin >> n >> k;
for(int i = 0; i < n; ++i)
{
fin >> x;
while(dq.size() && x < dq.back())
{
dq.pop_back();
idx.pop_back();
}
dq.push_back(x);
idx.push_back(i);
while(idx.front() <= i - k)
{
dq.pop_front();
idx.pop_front();
}
if(i >= k-1)
{
res += dq.front();
}
}
fout << res << "\n";
return 0;
}