Pagini recente » Cod sursa (job #2781493) | Cod sursa (job #898899) | Cod sursa (job #677323) | Cod sursa (job #2964187) | Cod sursa (job #1257713)
#include <fstream>
#include <deque>
#define DMAX 5000004
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque <int> dq;
//dq.empty(); -> returneaza 1 daca e vid
//dq.push_front(val);
//dq.pop_front();
//dq.push_back(val);
//dq.pop_back();
//dq.back();
//dq.front(); -> returneaza valoarea
int n, k;
int a[DMAX];
long long int s;
void citire();
void rez();
int main()
{
citire();
rez();
return 0;
}
void citire()
{
int i;
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>a[i];
}
void rez()
{
int i;
for(i=1;i<=n;i++)
{
if(!dq.empty() && dq.front()==i-k)
dq.pop_front();
while(!dq.empty() && a[dq.back()]>a[i])
dq.pop_back();
dq.push_back(i);
if(i>=k)
s+=(long long int)a[dq.front()];
}
fout<<s<<'\n';
}