Pagini recente » Cod sursa (job #2223105) | Cod sursa (job #2307334) | Cod sursa (job #1018646) | Cod sursa (job #864792) | Cod sursa (job #2730328)
#include <iostream>
#include <fstream>
std::ifstream f("deque.in");
std::ofstream g("deque.out");
#define cout_std std::cout
#define cin_std std::cin
int v[5000000], deque[5000000]; // in deque se afla indici pt elemente din v
int main()
{
int n, k;
f >> n >> k >> v[0];
deque[0] = 0;
int st = 0, dr = 0;
for (int i = 1; i < k; i++)
{
f >> v[i];
dr++;
while (dr > st and v[i] <= v[deque[dr-1]])
dr--;
deque[dr] = i;
}
long long suma = v[deque[st]];
for (int i = k; i < n; i++)
{
f >> v[i];
if(i - deque[st] + 1 > k)
st++;
dr++;
while (dr > st and v[i] <= v[deque[dr - 1]])
dr--;
deque[dr] = i;
suma += v[deque[st]];
}
g << suma;
return 0;
}