Cod sursa(job #274078)

Utilizator StigmaSimina Pitur Stigma Data 9 martie 2009 13:25:02
Problema Deque Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream.h>
ifstream fin("deque.in");
ofstream fout("deque.out");


struct coada{int info, ind; coada *st, *dr;};

coada *c,*u,*p;
long n,k,x;
long s;


coada *creare(long x, long i)
{coada *d;
d=new coada;

 d->info=x;
 d->ind=i;
 d->dr=0;
 d->st=0;

return d;
}



int main()
{coada *d;
fin>>n>>k;

for (long i=1;i<=n;i++)
{fin>>x;

p=new coada;
p=creare(x,i);

while (u && u->info>=x) //sterg din capat toate elem >= cu elem nou
 {d=u;
  u=u->st;
  delete d;
  }

if (u)    //daca nu am coada vida
{p->st=u;
 u->dr=p;
 u=p;
}

else
 c=u=p; //este primul element din coada


if (c->ind<=i-k)
{d=c;
c=c->dr;
delete d;
}

if (i>=k) s+=c->info;

}

fout<<s;
fout.close();
return 0;
}