45 lines
881 B
Text
45 lines
881 B
Text
# M[0] := S := T := 0
|
|
# P():
|
|
# S := T + 1
|
|
# n := z()
|
|
# T := S + n
|
|
# M := R(n, n)
|
|
# R(x, n):
|
|
# M[S+n] := x
|
|
# n := n - 1
|
|
# 0 <= n ? R(n) : n
|
|
# Q():
|
|
# T := S - 1
|
|
# S := T - M[T]
|
|
# W(i):
|
|
# M[i](i)
|
|
0 0:M 0sS 0sT
|
|
[lT1+sS z dlS+sT dlRxsM]sP
|
|
[d_3RlS+:M 1- d0!>R]sR
|
|
[lS1-sT lTd;M-sS]sQ
|
|
[d;Mx]sW
|
|
|
|
# A(k, x1, x2, x3, x4, x5):
|
|
# P(0, 'B()'); F(); Q()
|
|
# F():
|
|
# 0 >= M[S] ? G() : B(T-1)
|
|
# G():
|
|
# M[S+6] := W(M[S+5])
|
|
# W(M[S+4]) + M[S+6]
|
|
# q()
|
|
[0[lBx]lPx lFx lQx]sA
|
|
[lS;M0!<G lT1-lBx]sF
|
|
[lS5+;M lWx lS6+:M lS4+;M lWx lS6+;M + q]sG
|
|
|
|
# B(i):
|
|
# P()
|
|
# L := M[S]+1 - M[M[S]+1]
|
|
# M[L] := M[L] - 1
|
|
# A(M[L], M[S], M[L+1], M[L+2], M[L+3], M[L+4])
|
|
# Q()
|
|
[lPx lS;M1+d;M-sL lL;M1-lL:M lL;M lS;M lL1+;M lL2+;M lL3+;M lL4+;M lAx lQx]sB
|
|
|
|
# P('(x):1', '(x):-1', '(x):-1', '(x):1', '(x):0')
|
|
# p(A(?(), 1, 2, 3, 4, 5))
|
|
[sM1] [sM_1] [sM_1] [sM1] [sM0] lPx
|
|
? 1 2 3 4 5 lAx p
|