Pagini recente » Cod sursa (job #3030241) | Cod sursa (job #2871625) | Cod sursa (job #1668507) | Cod sursa (job #2477221) | Cod sursa (job #1112248)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct numar {
int val, poz;
};
numar x;
int i, n, k, nr;
long long s;
int main() {
deque<numar> mydeque;
fin >> n >> k;
for(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();
}
x.val = nr;
x.poz = i;
mydeque.push_back(x);
if(i >= k) s += mydeque.front().val;
}
fout << s << '\n';
fin.close();
fout.close();
return 0;
}