Pagini recente » Cod sursa (job #2292834) | Cod sursa (job #2406712) | Cod sursa (job #874036) | Cod sursa (job #477720) | Cod sursa (job #1075822)
#include <cstdio>
using namespace std;
int n,i,k,a[5100000],b[5100000],p,x,u;
long long s;
void pune (int i)
{
while (u>=p && a[b[u]]>a[i])
{
b[u]=0;
u--;
}
u++;
b[u]=i;
}
int main()
{freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d",&n,&k);
for(i=1; i<=n; i++)
scanf("%d",&a[i]);
u=0; p=1;
for(i=1; i<k; i++)
pune(i);
for(i=k; i<=n; i++)
{
pune(i);
s=s+a[b[p]];
if(i-b[p]==k-1){
b[p]=0;
p++;
}
}
printf("%d",s);
return 0;
}