Pagini recente » Cod sursa (job #2701614) | Cod sursa (job #3038744) | Cod sursa (job #1896592) | Cod sursa (job #1799583) | Cod sursa (job #394759)
Cod sursa(job #394759)
#include <cstdio>
#include <deque>
using namespace std;
int a[5000010];
int main(){
FILE* fin=fopen("deque.in","r");
FILE* fout=fopen("deque.out","w");
int n,k;
long long sm=0;
deque<int>deq;
fscanf(fin,"%d %d",&n,&k);
for(int i=0;i<n;i++){
fscanf(fin,"%d",&a[i]);
while(deq.size()>0&&a[i]<=a[deq.back()]){
deq.pop_back();
}
deq.push_back(i);
if(deq.front()==i-k){
deq.pop_front();
}
if(i>=k-1){
sm+=a[deq.front()];
}
}
fprintf(fout,"%lld\n",sm);
fclose(fin);
fclose(fout);
}