Pagini recente » Cod sursa (job #2311821) | Cod sursa (job #1764151) | Cod sursa (job #3249064) | Cod sursa (job #367372) | Cod sursa (job #3300488)
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
int main() {
ifstream fin("deque.in");
ofstream fout("deque.out");
int N, K;
fin >> N >> K;
vector<int> a(N);
deque<int> mn;
for(int i=0; i<N; ++i) {
fin >> a[i];
}
for(int i=0; i<K-1; ++i) {
while(!mn.empty() && a[mn.back()] >= a[i]) {
mn.pop_back();
}
mn.push_back(i);
}
long long int suma = 0;
for(int i=K-1; i<N; ++i) {
if(!mn.empty() && mn.front() <= i - K) {
mn.pop_front();
}
while(!mn.empty() && a[mn.back()] >= a[i]) {
mn.pop_back();
}
mn.push_back(i);
suma += a[mn.front()];
}
fout << suma << '\n';
return 0;
}