Pagini recente » Cod sursa (job #2856487) | Cod sursa (job #1028249) | Cod sursa (job #1142543) | Cod sursa (job #387771) | Cod sursa (job #2044386)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct Punct
{
int val;
int timp;
}x;
int i;
int nr, k, val;
long long total;
deque <Punct> deq;
int main()
{
f >> nr >> k;
for(i=1; i <= nr; i++)
{
f >> 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 =total + deq.back().val;
}
g << total;
}