Pagini recente » Cod sursa (job #201677) | Cod sursa (job #854570) | Istoria paginii runda/calcularea_aia | Cod sursa (job #1001791) | Cod sursa (job #2833974)
#include<deque>
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
long long s;
struct element{
int val;
int poz;
};
deque<element> mydeque;
int main() {
fin >> n >> k;
int nr;
for (int i = 1; i<=n; i++) {
fin >> nr;
while(!mydeque.empty() && mydeque.front().poz < i-k+1) {
mydeque.pop_front();
}
while(!mydeque.empty() && mydeque.back().val > nr) {
mydeque.pop_back();
}
element x = {nr, i};
mydeque.push_back(x);
if (i>=k) {
s += mydeque.front().val;
}
}
fout << s;
return 0;
}