Pagini recente » Cod sursa (job #3367876) | Cod sursa (job #3366336) | Cod sursa (job #3367931) | Cod sursa (job #3368794) | Cod sursa (job #3365910)
#include <fstream>
#include <deque>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
struct element {
int pozitie;
int valoare;
};
deque<element> dq;
int main()
{
int n, k;
cin >> n >> k;
element x;
long long suma=0;
for (int i=1; i<=n; i++) {
cin >> x.valoare;
x.pozitie=i;
while (dq.size()>=1) {
if (x.valoare<=dq.back().valoare) dq.pop_back();
else if (x.valoare>dq.back().valoare) break;
}
if (dq.size()>=1 && dq.front().pozitie==i-k) {
dq.pop_front();
}
dq.push_back(x);
if (i>=k) suma=suma+dq.front().valoare;
}
cout << suma;
return 0;
}