Pagini recente » Cod sursa (job #2388104) | Cod sursa (job #1331115) | Cod sursa (job #1766023) | Cod sursa (job #1606256) | Cod sursa (job #723934)
Cod sursa(job #723934)
#include<cstdio>
#include<deque>
#define MAXN 5000005
std :: deque <int> Deck;
int A[MAXN];
int N,K;
int long long Solutie;
int main(){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d",&N,&K);
for(int i=1;i<=N;i++)
scanf("%d",&A[i]);
Deck.push_front(1);
for(int i=2;i<=N;i++){
while(!Deck.empty() && A[i] < A[Deck.back()])
Deck.pop_back();
Deck.push_back(i);
if(i-K == Deck.front())
Deck.pop_front();
if(i >= K)
Solutie += (int long long) A[Deck.front()];
}
printf("%lld",Solutie);
return 0;
}