Pagini recente » Cod sursa (job #2051191) | Cod sursa (job #1642741) | Cod sursa (job #532534) | Cod sursa (job #2589583) | Cod sursa (job #2033672)
#include <cstdio>
#include <deque>
#define N 5000005
using namespace std;
int n, k, a[N];
long long int s;
deque <int> d;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d\n",&n, &k);
for (int i=0;i<n;i++)
scanf("%d\n",&a[i]);
for (int i=0;i<k-1;i++)
{
while(!d.empty() && a[d.back()]>a[i])
d.pop_back();
d.push_back(i);
}
for (int i=k-1;i<n;i++)
{
while(!d.empty() && a[d.back()]>a[i])
d.pop_back();
d.push_back(i);
if(d.front()==i-k)
d.pop_front();
s=s+a[d.front()];
}
printf("%lld",s);
return 0;
}