Приснилась сегодня.
Есть стакан шириной W(нечетное) высотой H
ooooo
ooooo
ooooo
ooooo
ooooo
ooooo
ooooo
Из точки @ ([floor(W / 2), 0]) отпускают листик. Падать он может вниз или по диагоналям - #
oo@oo
o###o
ooooo
ooooo
ooooo
ooooo
ooooo
При этом не может пересечь края стакана. Те [x, y] -> [[x, y + 1], [min(x + 1, W - 1), y + 1], [max(x - 1, 0), y + 1]]
ooooo
o@ooo
###oo
ooooo
oooo@
@oo##
##ooo
Найти всевозможное количество путей из изначальной точки [floor(W / 2), 0] до дна.
PS тег haskell для привлечения математиков. Решить нужно аналитически, без рекурсивных программ в лоб.