Pagini recente » Cod sursa (job #2373125) | Cod sursa (job #1961783) | Cod sursa (job #497593) | Cod sursa (job #678308) | Cod sursa (job #3238010)
#include <iostream>
#include <deque>
#include <vector>
#include <fstream>
using namespace std;
long long f(int N, int K, const vector<int>&t) {
deque<int> deq;
long long ossz= 0;
for (int i = 0; i < N; ++i) {
if (!deq.empty() && deq.front() == i - K) {
deq.pop_front();
}
while (!deq.empty() && t[deq.back()] > t[i]) {
deq.pop_back();
}
deq.push_back(i);
if (i >= K - 1) {
ossz+=t[deq.front()];
}
}
return ossz;
}
int main() {
ifstream fin("deque.in");
ofstream fout("deque.out");
int N,K;
fin >> N >> K;
vector<int>t(N);
for (int i = 0; i < N; ++i) {
fin >>t[i];
}
fout<<f(N, K,t);
return 0;
}