Pagini recente » Monitorul de evaluare | Cod sursa (job #1004150) | Cod sursa (job #3311873) | Cod sursa (job #2078901) | Cod sursa (job #2068086)
#include <iostream>
#include <deque>
using namespace std;
deque <int> ai;
deque <int> v;
int main()
{
FILE *fin, *fout;
int n,k,i,s=0,x;
fin=fopen("deque.in","r");
fout=fopen("deque.out","w");
fscanf(fin,"%d %d\n",&n,&k);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&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,"%d\n",s);
fclose(fin);
fclose(fout);
return 0;
}