Pagini recente » Cod sursa (job #1019867) | Cod sursa (job #3154894) | Cod sursa (job #1486830) | Cod sursa (job #2926557) | Cod sursa (job #1254105)
#include<cstdio>
#include<deque>
using namespace std;
struct aa{int x,poz;};
deque<aa> v;
aa aux;
int vec[5000001];
int main ()
{freopen ("deque.in","r",stdin);
freopen ("deque.out","w",stdout);
int n,k,i;
long long s=0;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&vec[i]);
for(i=1;i<=k;i++)
{while(v.empty()==0&&vec[i]<v.back().x)
v.pop_back();
aux.x=vec[i];
aux.poz=i;
v.push_back(aux);
}
s=v.front().x;
for(i=k+1;i<=n;i++)
{if(v.front().poz+k<=i)
v.pop_front();
while(v.empty()==0&&vec[i]<v.back().x)
v.pop_back();
aux.x=vec[i];
aux.poz=i;
v.push_back(aux);
s+=v.front().x;
}
printf("%I64d",s);
return 0;
}