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