Pagini recente » Cod sursa (job #3000367) | Cod sursa (job #1812131) | Cod sursa (job #2713682) | Cod sursa (job #2871382) | Cod sursa (job #1218304)
#include <iostream>
#include <cstdio>
#include <deque>
using namespace std;
typedef long long ll;
deque<ll> queue;
ll a[5000010];
int n,k;
void solve(){
ll sum = 0;
for(int i = 0; i < n; i++){
if(queue.size() > 0 && (i - queue.front()) >= k)
queue.pop_front();
while(queue.size() > 0){
if(a[queue[queue.size() - 1]] >= a[i])
queue.pop_back();
else
break;
}
queue.push_back(i);
if(i > k - 2){
sum += a[queue.front()];
}
}
printf("%lld\n",sum);
}
int main(){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i = 0; i < n; i++)
scanf("%lld",&a[i]);
solve();
return 0;
}