Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Algo_it(A,p,r){
- cp=p;
- cr=r;
- stack_r=stack_q1=stack_q2=stack_ret=nil;
- last=ritorno=nil;
- while(cp<=cr or stack_r!=nil)do
- if (cp<=cr) then
- ret=0;
- if (cp=cr)then
- ret=A[cp];
- last=cr;
- cp=cr+1;
- else
- q1= (cp+2cr)/3;
- push(stack_r,cr);
- push(stack_q1,q1);
- cr=q1;
- else
- cr=top(stack_r);
- q1=top(stack_q1);
- /* if (cp=cr) then
- ret=A[cp];
- last=cr;
- cp=cr+1;
- pop(stack_r);
- pop(stack_q1); */
- else
- if(last!=cr) then
- if(cr=q1)then
- ret=ritorno;
- ritorno=ret;
- q2=(2cp+cr)/3;
- push(stack_q2,q2);
- push(stack_r,cr);
- push(stack_ret,ret);
- cp=q1+1;
- cr=q2;
- else
- q2=top(stack_q2);
- ret=top(stack_ret) + ritorno;
- pop(stack_ret);
- push(stack_ret);
- cp=q2+1;
- else
- ret=top(stack_ret)+ ritorno;
- pop(stack_ret);
- pop(stack_q1);
- pop(stack_q2);
- pop(stack_r);
- last=cr;
- cp=cr+1;
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement