Pagini recente » Cod sursa (job #1345543) | Cod sursa (job #271851) | Cod sursa (job #351540) | Cod sursa (job #2484568) | Cod sursa (job #2833976)
#include <deque>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct numar
{
int val;
int poz;
};
int N, K, nr;
numar x;
long long s;
deque <numar> deq;
int main()
{
fin >> N >> K;
for (int i = 1; i <= N; i++){
fin >> nr;
while (!deq.empty() and deq.front().poz < i - K + 1){
deq.pop_front();
}
while (!deq.empty() and deq.back().val > nr){
deq.pop_back();
}
x.val = nr;
x.poz = i;
deq.push_back(x);
if (i >= K)
s += deq.front().val;
}
fout << s;
return 0;
}