Вам заданы N блоков высоты 1... N. Сколько способов вы можете упорядочить эти блоки подряд, чтобы при просмотре слева вы видели только L блоков (остальные скрыты более высокими блоками), и, если смотреть справа, вы видите только R блоков? Пример, указанный N=3, L=2, R=1, существует только одна компоновка {2, 1, 3}, а для N=3, L=2, R=2 есть два пути: {1, 3, 2} и {2, 3, 1}.
Как нам решить эту проблему путем программирования? Какие-нибудь эффективные способы?