Pagini recente » Cod sursa (job #1597479) | Cod sursa (job #117291) | Cod sursa (job #1101167) | Cod sursa (job #402462) | Cod sursa (job #3216588)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
struct numar {
int val, poz;
};
long long int n, k, i, x, total_sum = 0;
deque<numar> dq;
numar aux;
int main () {
fin >> n >> k;
for (i = 0; i < k; i++) {
fin >> x;
aux.val = x;
aux.poz = i;
while (dq.size() > 0 && aux.val < dq.back().val) {
dq.pop_back();
}
dq.push_back(aux);
}
for (; i < n; i++) {
total_sum += dq.front().val;
if (dq.front().poz + k == i)
dq.pop_front();
fin >> x;
aux.val = x;
aux.poz = i;
while (dq.size() > 0 && aux.val < dq.back().val) {
dq.pop_back();
}
dq.push_back(aux);
}
total_sum += dq.front().val;
fout << total_sum << '\n';
return 0;
}