Pagini recente » Cod sursa (job #1260191) | Cod sursa (job #353970) | Cod sursa (job #1979216) | Cod sursa (job #3178971) | Cod sursa (job #2574771)
#include <iostream>
#include <cstdio>
#include <deque>
using namespace std;
deque <int> ai;
deque <int> v;
int main()
{
FILE *fin, *fout;
long long n,k,i,s=0,x;
fin=fopen("deque.in","r");
fout=fopen("deque.out","w");
fscanf(fin,"%lld %lld\n",&n,&k);
for(i=1;i<=n;i++){
fscanf(fin,"%lld",&x);
if(!v.empty() && v.front()<i-k+1){
ai.pop_front();
v.pop_front();
}
while(!ai.empty() && ai.back()>x){
ai.pop_back();
v.pop_back();
}
ai.push_back(x);
v.push_back(i);
if(i>=k)
s=s+ai.front();
}
fprintf(fout,"%lld\n",s);
fclose(fin);
fclose(fout);
return 0;
}