Pagini recente » Cod sursa (job #2518540) | Cod sursa (job #2521035) | Cod sursa (job #9760) | Cod sursa (job #1045010) | Cod sursa (job #404461)
Cod sursa(job #404461)
#include <cstdio>
#define RUN_TONIO int main(){exe();return 0;}
#include <deque>
using namespace std;
const int NMax=1<<20;
deque <int> D(NMax);
int N, K, v[NMax];
long long sum;
void read(){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d\n", &N,&K);
}
void to_N(){
for(int i=1;i<=N;++i){
scanf("%d",v+i);
}
}
void deque_D(){
for(int i=1;i<=N;++i){
for(;D.size() && v[i]<=D.back(); D.pop_back()) {}
D.push_back(v[i]);
if(D.front()==v[i-K]){
D.pop_front();
}
if(i>=K){
sum+=D.front();
}
}
}
void write(){
printf("%lld\n",sum);
}
void exe(){
read();
to_N();
deque_D();
write();
}
RUN_TONIO