Pagini recente » Cod sursa (job #373157) | Cod sursa (job #2266490) | Cod sursa (job #1857853) | Cod sursa (job #2414202) | Cod sursa (job #2732277)
#include <iostream>
#include <fstream>
using namespace std;
int n, k, i, front1, back1;
int date[5000001], deque1[5000001];
long long suma;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
fin >> n >> k;
for(i = 1; i <= n; i++)
fin >> date[i];
front1 = 1;
back1 = 0;
for(i = 1; i <= n; i++)
{
while(front1 <= back1 && date[i] <= date[deque1[back1]])
back1 --;
deque1[++back1] = i;
if(deque1[front1] == i - k)
front1 ++;
if(i >= k)
suma += date[deque1[front1]];
}
fout << suma << '\n';
return 0;
}