Pagini recente » Cod sursa (job #2234748) | Cod sursa (job #1742031) | Cod sursa (job #197656) | Cod sursa (job #1115058) | Cod sursa (job #1744152)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
deque<int> DQ;
const int NMAX=5000001;
int v[NMAX];
long long sum=0;
int main()
{
register int i,n,k;
in>>n>>k;
for(i=1; i<=n; i++)
{
in>>v[i];
}
for(i=1; i<k; i++)
{
while(DQ.empty()==0 && v[DQ.back()]>v[i])
{
DQ.pop_back();
}
DQ.push_back(i);
}
for(i=k; i<=n; i++)
{
while(DQ.empty()==0 && v[DQ.back()]>v[i])
{
DQ.pop_back();
}
DQ.push_back(i);
if(DQ.front()<=i-k)
{
DQ.pop_front();
}
sum+=v[DQ.front()];
}
out<<sum;
}