Pagini recente » Cod sursa (job #2145042) | Cod sursa (job #2440199) | Cod sursa (job #1306165) | Cod sursa (job #2431855) | Cod sursa (job #881916)
Cod sursa(job #881916)
#include<cstdio>
#include<deque>
#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;
long long 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("%lld\n", Sum);
fclose(stdout);
}
int main(){
read();
solve();
print();
return 0;
}