Pagini recente » Cod sursa (job #2645749) | Cod sursa (job #1995038) | Cod sursa (job #2046220) | Cod sursa (job #2849413) | Cod sursa (job #1712138)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
const int N=5000001;
int v[N],dq[N],st,dr=-1,n,k;
void stanga (int i)
{
if (dq[st]==i-k)
st++;
}
void dreapta (int i)
{
while (st<=dr && v[i]<=v[dq[dr]])
{
dr--;
}
dq [++dr]=i;
}
int main ()
{
int n,k,i;
long long s=0;
f>>n>>k;
for (i=1; i<=n; i++)
f>>v[i];
for (i=1; i<=n; i++)
{
stanga (i);
dreapta(i);
if (i>=k)
s+=v[dq[st]];
}
g<<s;
return 0;
}