Pagini recente » Cod sursa (job #2726504) | Cod sursa (job #2782820) | Cod sursa (job #1376884) | Cod sursa (job #1952920) | Cod sursa (job #2999827)
// Competitive.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <fstream>
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
struct element {
int value;
int position;
};
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
std::vector<element> codeAppliances;
std::deque<element> deq;
int main()
{
long long n, sum = 0, k;
fin >> n >> k;
for (int i = 0; i < n; ++i) {
int nr;
element el;
fin >> nr;
el.value = nr;
el.position = i;
codeAppliances.push_back(el);
}
for (int i = 0; i < k; ++i) {
while (deq.size() != 0 && codeAppliances[i].value < deq.back().value) {
deq.pop_back();
}
deq.push_back(codeAppliances[i]);
}
sum += deq.front().value;
for (int i = 0; i < n - k; ++i) {
int index = k+i;
while (deq.size() != 0 && codeAppliances[index].value < deq.back().value) {
deq.pop_back();
}
deq.push_back(codeAppliances[index]);
if (deq.front().position <= index-k) {
deq.pop_front();
}
sum += deq.front().value;
}
fout << sum;
}