Pagini recente » Cod sursa (job #1230497) | Cod sursa (job #1166719) | Cod sursa (job #2403951) | Cod sursa (job #2384892) | Cod sursa (job #3003722)
#include <fstream>
#include <deque>
using namespace std;
deque <int> dublcoada;
deque <int> pminim;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,pdeadunat,nr,i;
long long suma;
int main()
{
f>>n>>k;
pdeadunat=k;
for(i=1;i<=n;i++)
{
f>>nr;
if(dublcoada.empty()!=0)
{
dublcoada.push_back(nr);
pminim.push_back(i);
}
else
{
while(nr<=dublcoada.back())
{
dublcoada.pop_back();
pminim.pop_back();
if(dublcoada.empty()!=0)
break;
}
dublcoada.push_back(nr);
pminim.push_back(i);
}
if(i>=k)
suma+=dublcoada.front();
if(pminim.front()==i+1-k)
{
dublcoada.pop_front();
pminim.pop_front();
}
}
g<<suma;
return 0;
}