Pagini recente » Cod sursa (job #3257793) | Cod sursa (job #2991303) | Cod sursa (job #3173308) | Cod sursa (job #2563777) | Cod sursa (job #2887636)
#include <iostream>
#include <deque>
#include <fstream>
#include <vector>
using namespace std;
ifstream citeste("deque.in");
ofstream scrie("deque.out");
int n, k, a;
long long s;
deque <int> poz;
vector <int> v;
void citire ()
{
citeste >> n >> k;
v.push_back(-11111);
while (citeste >> a)
v.push_back(a);
}
void rezolvare ()
{
for (int indice_valoare=1; indice_valoare<=n; indice_valoare++)
{
while (poz.size() != 0 && v[indice_valoare] <= v[poz.back()])
poz.pop_back();
poz.push_back(indice_valoare);
if (indice_valoare >= k)
{
s = s + v[poz.front()];
cout << s << endl;
if (poz.front() == (indice_valoare - k + 1 ))
poz.pop_front();
}
}
}
int main()
{
citire();
rezolvare();
scrie << s;
return 0;
}