Pagini recente » Cod sursa (job #2094972) | Cod sursa (job #1833381) | Cod sursa (job #978518) | Cod sursa (job #307654) | Cod sursa (job #708699)
Cod sursa(job #708699)
#include<deque>
#include<algorithm>
#include<set>
#include<stdio.h>
#include<vector>
using namespace std;
typedef struct elem
{
int y;//ertek;
int w;//pozicio;
}ELEM;
elem s;
deque<elem> dq;
long long n,k;
long long m=0;
long long i;
long x;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%lld%lld",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%ld",&x);
while(!dq.empty()&&dq.front().w<=i-k)
dq.pop_front();
while(!dq.empty()&&dq.back().y>=x)
dq.pop_back();
s.y=x;
s.w=i;
dq.push_back(s);
if(i>=k)
m+=dq.front().y;
}
printf("%lld",m);
return 0;
}