Cod sursa(job #2502548)
| Utilizator | Data | 1 decembrie 2019 01:19:12 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
#include <iostream>
#include <deque>
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
std::deque<std::pair<int,int>> A;
int N, K, X, count = 1, poz=1;
int S;
int main()
{
fin >> N >> K;
for (int i = 1; i <= N; i++) {
fin >> X;
if (!A.empty() and i - K == A.front().second)
A.pop_front();
while (!A.empty() and X <= A.back().first)
A.pop_back();
A.push_back(std::make_pair(X,i));
if (i >= K)
S += A.front().first;
}
fout << S;
}