Pagini recente » Cod sursa (job #1962384) | Cod sursa (job #1542236) | Cod sursa (job #2488271) | Cod sursa (job #2632949) | Cod sursa (job #630549)
Cod sursa(job #630549)
#include<fstream>
using namespace std;
struct comb{ int val,pos; }deq[500005];
int main(void){
ifstream fin("deque.in");
ofstream fout("deque.out");
int i,n,k,aux,c1=1,c2=1;
long long suma=0;
fin>>n>>k;
for(i=1;i<=n;++i){
fin>>aux;
if(aux>deq[c2].val){
deq[++c2].val=aux;
deq[c2].pos=i;
}
else{
while(aux<deq[c2].val && c2>=c1)--c2;
++c2;
deq[c2].val=aux;
deq[c2].pos=i;
}
if(deq[c1].pos<=i-k)++c1;
if(i>=k)suma+=deq[c1].val;
}
fout<<suma; fin.close(); fout.close();
return 0;
}