Pagini recente » Cod sursa (job #472719) | Cod sursa (job #1050340) | Cod sursa (job #996787) | Cod sursa (job #3163679) | Cod sursa (job #1106479)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int i,j,k,N,M,D,a,b;
deque <int> mini,maxi;
int v[5000001];
long long int rasp;
int main()
{
f>>N>>D;
for (i=1;i<D;++i)
{
f>>a;v[i]=a;
while (mini.size()&&mini.back()>a)
mini.pop_back();
mini.push_back(i);
}
for (;i<=N;++i)
{
f>>a;v[i]=a;
if (mini.front()<=i-D)
mini.pop_front();
while (mini.size()&&v[mini.back()]>a)
mini.pop_back();
mini.push_back(i);
rasp+=v[mini.front()];
}
g<<rasp;
return 0;
}