Pagini recente » Cod sursa (job #1017302) | Cod sursa (job #1907945) | Cod sursa (job #2169796) | Profil Lulu_nama_ke | Cod sursa (job #2213046)
#include <cstdio>
using namespace std;
const int N=5000000;
int d[N],v[N],n,k;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int st=0,dr=-1,s=0;
for(int i=1;i<n;i++)
{
scanf("%d",v[i]);///scot st
if(d[st]==(i-k))
st++;
///scot din dreapta acele poz pe care nu voi avea min
while(st<=dr&&v[i]<=v[d[dr]])
{
--dr;
}
d[++dr]=i;
if(i>=k-1)
s+=v[d[st]];
}
printf("%d\n",s);
return 0;
}