Интервью Google: Расположение блоков

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

Как решить эту проблему с помощью программирования? Какие-нибудь эффективные способы?

40
задан Kara 30 December 2013 в 22:09
поделиться