Pagini recente » Cod sursa (job #2433577) | Cod sursa (job #3252305) | Cod sursa (job #2895685) | Cod sursa (job #1031109) | Cod sursa (job #1675684)
#include<fstream>
#include<deque>
using namespace std;
deque<int>dq,p;
int main ()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,i,nr;
fin>>n>>k;
for(i=1;i<=k;++i)
{
fin>>nr;
while(!dq.empty() && dq.back()>nr)
{
dq.pop_back();
p.pop_back();
}
dq.push_back(nr);
p.push_back(i);
}
long long int sum;
sum=dq.front();
for(i=k+1;i<=n;++i)
{
fin>>nr;
if(p.front()==i-k)
{
p.pop_front();
dq.pop_front();
}
while(!dq.empty() && dq.back()>nr)
{
dq.pop_back();
p.pop_back();
}
dq.push_back(nr);
p.push_back(i);
sum=sum+dq.front();
}
fout<<sum;
}