Pagini recente » Cod sursa (job #2596394) | Cod sursa (job #369962) | Cod sursa (job #684692) | Cod sursa (job #1216467) | Cod sursa (job #535366)
Cod sursa(job #535366)
#include <iostream>
#include <fstream>
using namespace std;
const char iname[] = "deque.in";
const char oname[] = "deque.out";
ifstream fin(iname);
ofstream fout(oname);
int n, k, i, j, mini;
int Deque[500005];
int v[500005], Front, Back;
int main()
{
fin >> n >> k;
for(i = 1; i <= n; i ++)
fin >> v[i];
Front = 1, Back = 0;
for(i = 1; i <= n; i ++)
{
while(v[i] <= v[Deque[Back]] && Back > 0 && Front <= Back)
Back--;
Deque[++Back] = i;
if(Deque[Front] <= i - k)
++Front;
if(i >= k)
mini = mini + v[Deque[Front]];
}
fout << mini << "\n";
}