# pascal triangle
# pas_tri(3) => [[1],[1,2,1],[1,3,3,1]]
def pas_tri(n)
arr = [[1]]
(n-1).times do
newarr = []
# got creative
newarr << arr.last.inject(0) do |a, b|
newarr << a + b
b
end
arr << newarr
end
arr
end
# pascal pyramid, only nth layer
# pas_pym_nth(3) => [[1],[2,2],[1,2,1]]
def pas_pym_nth(n)
arr = pas_tri(n)
arr.last.map.with_index do |a, i|
arr[i].map { |j| j * a }
end
end
#puts(pas_pym_nth(gets.chomp.to_i).map do |a| a.join(" ") end)
puts(pas_pym_nth(14).map do |a| a.join(" ") end)
IyBwYXNjYWwgdHJpYW5nbGUKIyBwYXNfdHJpKDMpID0+IFtbMV0sWzEsMiwxXSxbMSwzLDMsMV1dCmRlZiBwYXNfdHJpKG4pCiAgICBhcnIgPSBbWzFdXQogICAgKG4tMSkudGltZXMgZG8KICAgICAgICBuZXdhcnIgPSBbXQogICAgICAgICMgZ290IGNyZWF0aXZlCiAgICAgICAgbmV3YXJyIDw8IGFyci5sYXN0LmluamVjdCgwKSBkbyB8YSwgYnwKICAgICAgICAgICAgbmV3YXJyIDw8IGEgKyBiCiAgICAgICAgICAgIGIKICAgICAgICBlbmQKICAgICAgICBhcnIgPDwgbmV3YXJyCiAgICBlbmQKICAgIGFycgplbmQKCiMgcGFzY2FsIHB5cmFtaWQsIG9ubHkgbnRoIGxheWVyCiMgcGFzX3B5bV9udGgoMykgPT4gW1sxXSxbMiwyXSxbMSwyLDFdXQpkZWYgcGFzX3B5bV9udGgobikKICAgIGFyciA9IHBhc190cmkobikKICAgIGFyci5sYXN0Lm1hcC53aXRoX2luZGV4IGRvIHxhLCBpfAogICAgICAgIGFycltpXS5tYXAgeyB8anwgaiAqIGEgfQogICAgZW5kCmVuZAoKI3B1dHMocGFzX3B5bV9udGgoZ2V0cy5jaG9tcC50b19pKS5tYXAgZG8gfGF8IGEuam9pbigiICIpIGVuZCkKcHV0cyhwYXNfcHltX250aCgxNCkubWFwIGRvIHxhfCBhLmpvaW4oIiAiKSBlbmQp