Pagini recente » Cod sursa (job #2947253) | Profil alextudose95 | Borderou de evaluare (job #1188850) | Borderou de evaluare (job #2629824) | 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;
}