Pagini recente » Cod sursa (job #1759347) | Cod sursa (job #2924827) | Cod sursa (job #1969069) | Istoria paginii utilizator/turtoieduard | Cod sursa (job #2044297)
#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();
}