Pagini recente » Borderou de evaluare (job #3033932) | Borderou de evaluare (job #1239103) | Borderou de evaluare (job #1250388) | Borderou de evaluare (job #3033861) | Cod sursa (job #2351908)
#include <cstdio>
#include <deque>
using namespace std;
deque <int> d1,d2;
int main (){
FILE *fin=fopen ("deque.in","r");
FILE *fout=fopen ("deque.out","w");
int n,k,i,nr;
long long s=0;
fscanf (fin,"%d %d",&n,&k);
for (i=1;i<=n;i++){
fscanf (fin,"%d",&nr);
while (!d1.empty() && d2.front()<i-k+1){
d1.pop_front();
d2.pop_front();
}
while (!d1.empty() && nr<d1.back()){
d1.pop_back();
d2.pop_back();
}
d1.push_back(nr);
d2.push_back(i);
if (i>=k)
s+=d1.front();
}
fprintf (fout,"%lld",s);
}