Pagini recente » Cod sursa (job #2416225) | Cod sursa (job #2474709) | Cod sursa (job #1176023) | Cod sursa (job #391051) | Cod sursa (job #2179401)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
const int inf = 0x3f3f3f3f;
deque <long long> p, q;
long long n, k, i, a, suma;
int main() {
fin >> n >> k;
for (i = 1; i <= k; ++i) {
fin >> a;
while (!q.empty() && q.back() >= a) {
q.pop_back();
p.pop_back();
}
q.push_back(a);
p.push_back(i);
}
suma += q.front();
for (i = k + 1; i <= n; ++i) {
fin >> a;
while (!q.empty() && q.back() >= a) {
q.pop_back();
p.pop_back();
}
q.push_back(a);
p.push_back(i);
while (p.front() <= i - k) {
p.pop_front();
q.pop_front();
}
suma += q.front();
}
fout << suma;
}