Pagini recente » Cod sursa (job #1252236) | Cod sursa (job #2600629) | Cod sursa (job #1136519) | Cod sursa (job #3294814) | Cod sursa (job #1257705)
#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];
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+=a[dq.front()];
}
fout<<s<<'\n';
}