Pagini recente » Cod sursa (job #959268) | Cod sursa (job #1931508) | Cod sursa (job #110199) | Cod sursa (job #2849598) | Cod sursa (job #2207355)
#include <fstream>
using namespace std;
int v[5000001],i,n,k,st,dr,a[5000001];
ifstream fin("deque.in");
ofstream fout("deque.out");
void elimina_fata(int ult)
{
if(st<=dr && a[st]==ult-k)
st++;
}
void elimina_spate(int ult)
{
while(st<=dr && v[a[dr]]>=v[ult])
dr--;
}
void adauga(int ult) {
elimina_fata(ult);
elimina_spate(ult);
a[++dr]=ult;
}
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>v[i];
for(i=1;i<k;i++)
{
adauga(i);
}
long long sum=0;
for (i=k; i<=n; ++i) {
adauga(i);
sum += v[a[st]];
}
fout << sum << "\n";
return 0;
}