Pagini recente » Cod sursa (job #1872840) | Cod sursa (job #621574) | Cod sursa (job #2887974) | Statistici Centiu Rica Ion (CNICB_Centiu_Rica_Ion) | Cod sursa (job #274078)
Cod sursa(job #274078)
#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;
}