Cod sursa(job #2502826)
| Utilizator | Data | 1 decembrie 2019 17:36:55 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
#include <iostream>
#include <deque>
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
std::deque<std::pair<long long,long long>> A;
long long N, K, X, count = 1, poz=1;
long long S;
int main()
{
fin >> N >> K;
for (long long 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;
}