Cod sursa(job #1075935)

Utilizator smatei16Matei Staicu smatei16 Data 9 ianuarie 2014 19:05:10
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#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("%lld",s);
return 0;
}