Cod sursa(job #514389)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 18 decembrie 2010 16:40:36
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include<stdio.h>
FILE*fin,*fout;
long long s;
long int n,i,j,k,v[5000001],b[5000001],p,u;
int main(){
fin=fopen("deque.in","r");
fout=fopen("deque.out","w");
fscanf(fin,"%ld %ld",&n,&k);
for(i=1;i<=n;i++){
fscanf(fin,"%ld",&v[i]);
}
p=u=1;
b[1]=1;
for(i=2;i<=n;i++){
  while(v[i]<=v[b[u]]&&u>=p){
  u--;
  }
u++;
b[u]=i;


  
while(p<=u&&i-b[p]>=k){
p++;
}
if(i>=k){
s=s+v[b[p]];
}

}

fprintf(fout,"%lld",s);
return 0;}