Pagini recente » Cod sursa (job #1892318) | Cod sursa (job #303186) | Profil piro | Cod sursa (job #1079109) | Cod sursa (job #2200335)
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <queue>
#include <stack>
#include <algorithm>
int main() {
int numberOfElements, subsequenceLength;
int element;
int sum = 0;
int min = INT32_MAX;
std::vector<int> elements;
std::queue<int> orderOfAdding;
std::ifstream in("deque.in");
std::ofstream out("deque.out");
in >> numberOfElements >> subsequenceLength;
for (int i = 0; i < subsequenceLength; i++) {
in >> element;
elements.push_back(element);
orderOfAdding.push(element);
}
std::make_heap(elements.begin(), elements.end(), std::greater<int>());
for (int i = subsequenceLength; i < numberOfElements; i++) {
int min = elements[0];
sum += min;
int removedElement = orderOfAdding.front();
orderOfAdding.pop();
elements.erase(std::find(elements.begin(), elements.end(), removedElement));
in >> element;
elements.push_back(element);
orderOfAdding.push(element);
std::make_heap(elements.begin(), elements.end(), std::greater<int>());
}
min = elements[0];
sum += min;
out << sum;
in.close();
out.close();
return 0;
}