На берегу прямолинейной реки лежат брёвна (не пересекающие друг друга отрезки; рис. 1). Каждое бревно составляет с линией берега угол меньше $45^\circ$. Докажите, что для любого расположения брёвен обязательно найдётся бревно, которое можно закатить в реку, не задевая остальных. (Поворачивать бревно при качении не разрешается.)
Пусть берег — верхняя полуплоскость, линия берега — горизонтальная прямая $b$. Рассмотрим некоторое бревно $l$ (составляющее с прямой $b$ угол меньше $45^\circ$). Проведём из его концов лучи, составляющие углы по $45^\circ$ с прямой $b$: из правого конца — в направлении $p$ «вправо — вверх», из левого конца — в направлении $q$ «влево — вверх» (рис. 1), и рассмотрим множество точек, лежащих выше ломаной, состоящей из бревна $l$ и этих двух лучей. Ясно, что выкатывая любое бревно, удовлетворяющее условию задачи и не имеющее общих точек с этим множеством, мы не можем задеть бревно $l$.
Рис. 1Рис. 2
Удобно рассмотреть несколько большее множество, связанное с бревном $l$, — назовём его «тенью $l$» и обозначим $U_l$ (рис. 2): его граница — ломаная, которая идёт от правого конца бревна $l$ в направлении $p$; затем, если ломаная упирается во внутреннюю точку какого-то бревна — по этому бревну вправо, от его правого конца — вновь по направлению $p$, и т. д., и также аналогично — от левого конца бревна $l$ (здесь отрезки ломаной идут, чередуясь, по брёвнам и в направлении $q$). Очевидно, для разных брёвен $l_1$ и $l_2$ их тени не совпадают. При этом, если $l_1\subset U_{l_2}$ ($l_1$ лежит в тени $l_2$), то $U_{l_1}\subset U_{l_2}$. Теперь ясно, что в цепочке брёвен $l_1$, $l_2$, $l_3$, $\ldots$, в которой каждое бревно мешает выкатить предыдущее, никакое бревно не встретится дважды: для неё $U_{l_1}\subset U_{l_2}\subset U_{l_3}\subset\ldots$ Поэтому, начав строить такую цепочку, мы непременно придём к последнему бревну — его заведомо можно выкатить, не задевая остальные.