Pagini recente » Cod sursa (job #1515569) | Cod sursa (job #1847766) | Cod sursa (job #2187540) | Cod sursa (job #1591318) | Cod sursa (job #1723971)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>
#include <iterator>
#include <deque>
#include <cmath>
using namespace std;
struct element{
int val;
int poz;
};
int main () {
int N, K, suma = 0;
element e;
ifstream in("deque.in");
ofstream out("deque.out");
in >> N >> K;
deque<element> subsir;
for(int i = 1; i <= N; i++){
in >> e.val;
e.poz = i;
while(!subsir.empty() && e.val <= subsir.back().val){
subsir.pop_back();
}
subsir.push_back(e);
if(i < K)
continue;
if(i - K == subsir[0].poz)
subsir.pop_front();
suma += subsir[0].val;
}
out << suma;
return 0;
}