Pagini recente » Cod sursa (job #1151420) | Cod sursa (job #3277499) | Cod sursa (job #1689662) | Cod sursa (job #2343534) | 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);
}