Pagini recente » Cod sursa (job #774613) | Cod sursa (job #2636629) | Cod sursa (job #868981) | Cod sursa (job #2158906) | Cod sursa (job #2230376)
#include <fstream>
#include <deque>
using namespace std;
struct numbers{
int value;
int indice;
};
deque <numbers> deqq;
int main() {
ifstream inputfile("deque.in");
ofstream outputfile("deque.out");
int n, k;
inputfile >> n >> k;
long long result = 0;
for (int i = 0; i < n; i++)
{
numbers x;
inputfile >> x.value;
x.indice = i + k;
while ( deqq.size() && deqq.back().value > x.value)
{
deqq.pop_back();
}
while (deqq.size() && deqq.front().indice <= i)
{
deqq.pop_front();
}
deqq.push_back(x);
if(i >= k - 1){
result += 1LL * deqq.front().value;
}
}
outputfile << result;
return 0;
}