Pagini recente » Cod sursa (job #297311) | Cod sursa (job #634901) | Cod sursa (job #2879571) | Cod sursa (job #699435) | Cod sursa (job #1075800)
#include <cstdio>
using namespace std;
int i,a[5000003],n,k,b[5000003],Min,j,u,p;
void pune(int i)
{
while(u>=p && a[b[u]]>a[i])
--u;
++u;
b[u]=i;
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d\n",&n,&k);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
p=1;u=0;
for(i=1;i<k;++i)
pune(i);
Min=0;
for(i=k;i<=n;++i)
{
pune(i);
Min+=a[b[p]];
if(i-b[p]==k-1) p++;
}
printf("%d\n",Min);
return 0;
}