Pagini recente » Cod sursa (job #2956401) | Cod sursa (job #2981080) | Cod sursa (job #2306896) | Cod sursa (job #2652758) | Cod sursa (job #2946055)
#include <bits/stdc++.h>
#define int long long
using namespace std;
int v[5000001];
struct q
{
int indice;
int val;
};
q coada[5000001];
signed main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,i,l,r,j,k,s,b;
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;
}