Pagini recente » Cod sursa (job #2099057) | Cod sursa (job #669856) | Cod sursa (job #269129) | Cod sursa (job #1078737) | Cod sursa (job #2044333)
#include <fstream>
#include <deque>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
struct Punct
{
long long val, timp;
}x;
long long nr, k, v[5000004], val, total;
deque <Punct> deq;
int main()
{
cin >> nr >> k;
for(int i=1; i <= nr; i++)
{
cin >> val;
if(deq.empty() == false)
{
x = deq.back();
if(i-x.timp == k)
deq.pop_back();
}
if(deq.empty() == false)
x = deq.front();
while(x.val > val && deq.empty() == false)
{
deq.pop_front();
x = deq.front();
}
deq.push_front({val, i});
if(i >= k)
total += deq.back().val;
}
cout << total;
}