Pagini recente » Cod sursa (job #2442948) | Cod sursa (job #1259431) | Cod sursa (job #1586638) | Cod sursa (job #2336871) | Cod sursa (job #2889183)
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int valori[5000001], deque[5000001];
int main()
{
int nrValori, lungimeK;
fin >> nrValori >> lungimeK;
for (int i = 1; i <= nrValori; i++)
fin >> valori[i];
int suma = 0, inc = 1, sf = 0;
for (int i = 1; i <= nrValori; i++)
{
while (inc <= sf && valori[i] <= valori[deque[sf]])
sf--;
sf++; deque[sf] = i;
if (i >= lungimeK)
{
if (inc <= sf && deque[inc] <= i - lungimeK)
inc++;
suma += valori[deque[inc]];
}
}
fout << suma;
}