#!ruby
def tree_sub( data, cd, nst )
cds = []
data.each_with_index{|n,idx|
cds << idx if n == cd
}
cds.each_with_index{|x,idx|
print "│ " * nst, (cds.size - 1 <= idx)? "└" : "├", "─ #{x}\n"
tree_sub( data, x, nst + 1 )
}
end
def tree( data )
cd = data.index( -1 )
puts cd
tree_sub( data, cd, 0 )
end
tree( [1, 2, -1, 0, 0, 1, 1, 2] )
IyFydWJ5CgpkZWYgdHJlZV9zdWIoIGRhdGEsIGNkLCBuc3QgKQoJY2RzID0gW10KCWRhdGEuZWFjaF93aXRoX2luZGV4e3xuLGlkeHwKCQljZHMgPDwgaWR4CWlmIG4gPT0gY2QKCX0KCWNkcy5lYWNoX3dpdGhfaW5kZXh7fHgsaWR4fAoJCXByaW50ICLilIIgIiAqIG5zdCwgKGNkcy5zaXplIC0gMSA8PSBpZHgpPyAi4pSUIiA6ICLilJwiLCAi4pSAICN7eH1cbiIKCQl0cmVlX3N1YiggZGF0YSwgeCwgbnN0ICsgMSApCgl9CmVuZAoKZGVmIHRyZWUoIGRhdGEgKQoJY2QgPSBkYXRhLmluZGV4KCAtMSApCglwdXRzIGNkCgl0cmVlX3N1YiggZGF0YSwgY2QsIDAgKQplbmQKCgoJdHJlZSggWzEsIDIsIC0xLCAwLCAwLCAxLCAxLCAyXSApCg==