Pagini recente » Cod sursa (job #2024405) | Cod sursa (job #2644664) | Cod sursa (job #2891750) | Cod sursa (job #1623748) | Cod sursa (job #2946056)
#include <bits/stdc++.h>
using namespace std;
int v[5000001];
struct q
{
int indice;
int val;
};
q coada[5000001];
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,i,l,r,j,k,b;
long long s;
fin >> n >> k;
for (i=1; i<=n; i++)
fin >> v[i];
l=1;
r=1;
j=0;
coada[0].val=-10000001;
s=0;
for (i=1; i<=n; i++)
{
b=j;
while (coada[b].indice>=i-k+1)
{
if (v[i]<=coada[j].val && coada[j].indice>=i-k+1)
j--;
b--;
}
j++;
b++;
coada[j].val=v[i];
coada[j].indice=i;
if (i>=k)
{
s+=coada[b].val;
}
}
fout << s;
return 0;
}