Pagini recente » Cod sursa (job #1390551) | Cod sursa (job #62161) | Cod sursa (job #1762806) | Cod sursa (job #3172939) | Cod sursa (job #881913)
Cod sursa(job #881913)
#include<cstdio>
#include<queue>
#define FOR(i,a,b)\
for(int i=a; i<=b; ++i)
#define infile "deque.in"
#define outfile "deque.out"
#define nMax 5000005
using namespace std;
deque < int > Deck;
int v[nMax];
int N, K, Sum;
void read(){
freopen(infile, "r", stdin);
scanf("%d %d", &N, &K);
FOR(i,1,N)
scanf("%d", &v[i]);
fclose(stdin);
}
void solve(){
FOR(i,1,N){
while(!Deck.empty() && v[i] <= v[Deck.back()])
Deck.pop_back();
Deck.push_back(i);
while(Deck.front() <= i-K)
Deck.pop_front();
if(i >= K)
Sum += v[Deck.front()];
}
}
void print(){
freopen(outfile, "w", stdout);
printf("%d\n", Sum);
fclose(stdout);
}
int main(){
read();
solve();
print();
return 0;
}