Pagini recente » Cod sursa (job #1386048) | Cod sursa (job #2415580) | Cod sursa (job #1278084) | Cod sursa (job #1558718) | Cod sursa (job #2044285)
#include <iostream>
#include <fstream>
#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;
/// prima secventa de k elemente
for (i=1;i<=k;++i) ADD(i);
S+=a[D.front()];
{ 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();
return 0;
}