Pagini recente » Cod sursa (job #1510013) | Istoria paginii runda/e | Cod sursa (job #1971633) | Istoria paginii runda/unid | Cod sursa (job #2889675)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
deque<int> dq;
int n, i, m;
long long s;
int lista[50000010];
fin >> n >> m;
for (i = 0; i < n; i++)
fin >> lista[i];
fin.close();
for (i = 0; i < n; i++){
while (dq.size() != 0 && lista[i] <= lista[dq.back()])
dq.pop_back();
dq.push_back(i);
if(dq.front() < (i - m + 1))
dq.pop_front();
if(i >= m-1)
s += lista[dq.front()];
}
fout << s;
fout.close();
return 0;
}