Pagini recente » Cod sursa (job #2845975) | Cod sursa (job #696799) | Cod sursa (job #479627) | Cod sursa (job #2747396) | Cod sursa (job #2044287)
#include <fstream>
#include <cmath>
#define N 5000001
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque <int>D;
int n,k;
int a[N];
long long S=0;
void Citire()
{ int i;
fin>>n>>k;
for(i=1;i<=n;i++) fin>>a[i];
}
void Add(int x)
{
while(!D.empty() && a[x]<=a[D.back()])
D.pop_back();
D.push_back(x);
}
void Calcul()
{ int i;
for(i=1;i<=k;i++) Add(i);
S+=a[D.front()];
for(i=k+1;i<=n;i++)
{while(!D.empty() && i-D.front()>=k)
D.pop_front();
Add(i);
S+=a[D.front()];
}
}
int main()
{ Citire();
fin.close();
Calcul();
fout<<S<<"\n";
fout.close();
}