Pagini recente » Cod sursa (job #345637) | Cod sursa (job #177684) | Cod sursa (job #2368849) | Cod sursa (job #2099204) | Cod sursa (job #2726418)
#include <fstream>
int main()
{
std::ifstream f("deque.in");
int N, K, Suma = 0;
f >> N >> K;
int deq[N], Poz[N];
int Back = 0, Front = 0;
f >> deq[0];
Poz[0] = 0;
for(int i = 1; i < N; ++i)
{
f >> deq[i];
while(Front <= Back && deq[i] < deq[Back])
--Back;
deq[++Back] = deq[i];
Poz[Back] = i;
if(Poz[Front] <= i - K)
++Front;
if(i + 1 >= K)
Suma += deq[Front];
}
std::ofstream g("deque.out");
g << Suma;
return 0;
}