Cod sursa(job #312329)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 5 mai 2009 18:24:17
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
FILE *f,*g;
long n,k,li,ls,i,a[5000001],st[5000001],j,ok;
long long suma;
int main()
{ f=fopen("deque.in","r"); g=fopen("deque.out","w");
  fscanf(f,"%ld%ld",&n,&k);
  li=1; ls=0; suma=0;
  for(i=1;i<=n;i++)
   { fscanf(f,"%ld",&a[i]);
     ls++; st[ls]=i;
     j=ls;
     while(j>li&&a[st[j]]<a[st[j-1]])
      { st[j-1]=st[j]; j--; }
     ls=j;
     ok=1; j=li;
     while(ok)
      { if(st[j]>=i-k+1&&ok) { if(i>=k) suma=suma+a[st[j]]; ok=0; }
	else { if(i>k) li++; j=li; }
      }
   }
  fprintf(g,"%lld",suma);
  fclose(g);
  return 0;
}