Pagini recente » Cod sursa (job #4481) | Cod sursa (job #2605441) | Cod sursa (job #2614593) | Cod sursa (job #2546866) | Cod sursa (job #2732265)
#include <iostream>
#include <fstream>
#define maxn 5000010
using namespace std;
long long n, k, i;
long long date[maxn], deque1[maxn];
long long front1, back1;
long long suma;
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
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;
}