RosettaCodeData/Task/Man-or-boy-test/Dc/man-or-boy-test-1.dc
2026-04-30 12:34:36 -04:00

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