Pagini recente » Cod sursa (job #832241) | Cod sursa (job #2894993) | Cod sursa (job #2680921) | Cod sursa (job #2906168) | Cod sursa (job #2887647)
#include <iostream>
#include <fstream>
using namespace std;
ifstream citeste("deque.in");
ofstream scrie("deque.out");
int n, k, a;
int v[5000001], dequee[5000001];
long long suma;
void citire ()
{
citeste >> n >> k;
int i=1;
while (citeste >> a)
{
v[i] = a;
i++;
}
}
void parcurgere ()
{
int inceput = 1, sfarsit = 0;
for (int indice_valoare=1; indice_valoare<=n; indice_valoare++)
{
while (inceput <= sfarsit && v[indice_valoare] <= v[dequee[sfarsit]])
sfarsit --;
sfarsit ++;
dequee[sfarsit] = indice_valoare;
if (k <= indice_valoare)
{
suma = suma + v[dequee[inceput]];
cout << suma << endl;
if (dequee[inceput] == indice_valoare - k + 1)
inceput ++;
}
}
}
int main()
{
citire();
parcurgere();
scrie << suma;
return 0;
}