Pagini recente » Cod sursa (job #2564649) | Cod sursa (job #3294088) | Cod sursa (job #1305538) | Cod sursa (job #1669752) | Cod sursa (job #2777354)
//https://infoarena.ro/problema/deque
#include <iostream>
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
vector<int> v;
deque<pair<int, int>> d;
ifstream fin("deque.in");
ofstream fout("deque.out");
int N, K;
void afis(deque<pair<int ,int>> a) {
while(!a.empty()) {
cout << a.front().first << " ";
a.pop_front();
}
}
void read() {
int nr;
fin >> N >> K;
for (int i = 0; i < N; ++i) {
fin >> nr;
v.push_back(nr);
}
}
int main()
{
read();
long long sum = 0;
for (int i = 0; i < N; ++i) {
while (!d.empty() && d.front().first > v[i]) {
d.pop_front();
}
d.emplace_front(v[i], i);
if (!d.empty() && i - d.back().second >= K) {
d.pop_back();
}
if (i >= (K - 1) && i - d.back().second <= K) {
sum += d.back().first;
}
//my brain no work
/*afis(d);
cout << "\n";*/
}
fout << sum << "\n";
return 0;
}