Pagini recente » Cod sursa (job #83990) | Cod sursa (job #399696) | Cod sursa (job #1130843) | Cod sursa (job #2521148) | Cod sursa (job #404472)
Cod sursa(job #404472)
#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){
while(D.size()>0 && D.back()>v[i]){
D.pop_back();
}
D.push_back(v[i]);
if(i>=K){
if (i>K && D.front()==v[i-K]){
D.pop_front();
}
sum+=D.front();
}
}
}
void write(){
printf("%lld\n",sum);
}
void exe(){
read();
to_N();
deque_D();
write();
}
RUN_TONIO