Pagini recente » Cod sursa (job #2522085) | Cod sursa (job #1580188) | Cod sursa (job #790066) | Cod sursa (job #2751458) | Cod sursa (job #465036)
Cod sursa(job #465036)
#include <fstream>
#include <deque>
#define NMAX 5000005
using namespace std;
long n,k;
long long sum;
struct elm
{
long val;
long poz;
};
int main()
{
fstream fin,fout;
fin.open("deque.in",ios::in);
fout.open("deque.out",ios::out);
deque<elm> coada;
fin>>n>>k;
for(long i=1;i<=n;i++)
{
//elm *e= new elm;
elm e;
fin>>e.val;
e.poz=i;
while(!coada.empty() && coada.back().val >= e.val)
{
elm c=coada.back();
//delete c;
coada.pop_back();
}
coada.push_back(e);
if(i>=k)
{
elm c = coada.front();
while(i-c.poz>=k)
{
c=coada.front();
//delete c;
coada.pop_front();
c=coada.front();
}
sum+=c.val;
}
}
fout<<sum<<'\n';
fin.close();
fout.close();
return 0;
}