Pagini recente » Cod sursa (job #2190984) | Monitorul de evaluare | Cod sursa (job #2295853) | Cod sursa (job #2209543) | Cod sursa (job #374540)
Cod sursa(job #374540)
#include<cstdio>
int n,k,st,dr,j,min;
int dq[5000001];
int v[5000001];
long long sum;
inline 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()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d", &n, &k);
for (j=1;j<=n;j++)
scanf("%d\n", &v[j]);
st=1;
dr=k;
for (j=1;j<=k;j++)
{
stanga(j);
dreapta(j);
}
for (j=k;j<=n;j++)
{
stanga(j);
dreapta(j);
sum+=(long long)(v[dq[st]]);
}
printf("%lld", sum);
return 0;
}