Pagini recente » Cod sursa (job #1106876) | Cod sursa (job #1048065) | Cod sursa (job #794337) | Cod sursa (job #1209424) | Cod sursa (job #3320563)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main(void)
{
long long N,K,i,j, cnt_deque=0, rez=0;
long long *v = nullptr, *deque = nullptr;
fin>>N>>K;
v = new long long[N];
deque = new long long[N];
for(i=0;i<N;i++)
{
fin >> v[i];
}
for(i=0;i<N;i++)
{
deque[cnt_deque] = i;
while (cnt_deque >0 && v[deque[cnt_deque]] < v[deque[cnt_deque-1]])
{
deque[cnt_deque-1] = i;
cnt_deque--;
}
cnt_deque ++;
if(i>= K -1)
{
if(deque[0] <= i - K)
{
for(j=1;j<cnt_deque;j++)
{
deque[j-1] = deque[j];
}
cnt_deque--;
}
rez = rez + v[deque[0]];
}
}
fout << rez;
delete[]v;
delete[]deque;
return 0;
}