Three sidelines of on acute-angled triangle are drawn on the plane. Fyodor wants to draw the altitudes of this triangle using a ruler and a compass. Ivan obstructs him using an eraser. For each move Fyodor may draw one line through two markeed points or one circle centered at a marked point and passing through another marked point. After this Fyodor may mark an arbitrary number of points (the common points of drawn lines, arbitrary points on the drawn lines or arbitrary points on the plane). For each move Ivan erases at most three of marked point. (Fyodor may not use the erased points in his constructions but he may mark them for the second time). They move by turns, Fydors begins. Initially no points are marked. Can Fyodor draw the altitudes?
Problem
Source: 2021 Sharygin Geometry Olympiad Finals grade IX p7
Tags: construction, geometry, altitudes
30.10.2021 07:40
[asy][asy] import graph; size(22cm); real labelscalefactor = 0.5; /* changes label-to-point distance */ pen dps = linewidth(0.7) + fontsize(10); defaultpen(dps); /* default pen style */ pen dotstyle = black; /* point style */ real xmin = -4.688302175327889, xmax = 21.60273861962616, ymin = -6.380990152110212, ymax = 11.11583490655283; /* image dimensions */ pen ffccww = rgb(1,0.8,0.4); pen zzttqq = rgb(0.6,0.2,0); pen uyuaff = rgb(0.2823529411764706,0.2901960784313726,1); pen ffqqtt = rgb(1,0,0.2); /* draw figures */ draw((-0.09829462558082054,-0.004753864302100857)--(10.052482137285102,-0.14639260983046232), linewidth(.8)); draw((10.052482137285102,-0.14639260983046232)--(2.2938264100092884,6.605054260354767), linewidth(.6)); draw((2.2938264100092884,6.605054260354767)--(-0.09829462558082054,-0.004753864302100857), linewidth(1) + blue); draw(circle((0.2445433533807364,0.9425616038811464), 4.841487723947554), linewidth(0.2)); draw(circle((1.8921237620930325,5.495086417428272), 4.841487723947554), linewidth(0.2)); draw((-2.8742685821539413,4.645670499377106)--(5.010935697627709,1.7919775219323129), linewidth(.6)); draw(circle((2.3972417088506135,2.737885822632596), 1.9790000671995365), linewidth(.8) + linetype("0 3 4 3") + ffccww); draw(circle((0.5363577356508675,3.4113485938858394), 1.9790000671995365), linewidth(.8) + linetype("0 3 4 3") + ffccww); draw(circle((0.5616627952666793,1.8188126933028297), 0.9318694716186052), linewidth(.2)); draw(circle((0.2445433533807364,0.9425616038811464), 0.9318694716186052), linewidth(.2)); draw((-0.35575262920925976,1.6553206412991572)--(1.1619587778566753,1.1060536558848182), linewidth(.6)); draw(circle((1.1619587778566753,1.1060536558848182), 0.2632738662221279), linewidth(.8) + linetype("0 3 4 3") + ffccww); draw(circle((0.9143983424958136,1.19564695630113), 0.2632738662221279), linewidth(.8) + linetype("0 3 4 3") + ffccww); draw(circle((1.8921237620930325,5.495086417428272), 3.909618252328949), linewidth(0.2)); draw((-2.0083565001645387,5.227937390323981)--(4.718224664843654,2.79355563536863), linewidth(.6)); draw(circle((4.050554921634989,3.0351884948155763), 0.8585935475280186), linewidth(.8) + linetype("0 3 4 3") + ffccww); draw(circle((3.2432063022139928,3.327371804701271), 0.8585935475280186), linewidth(.8) + linetype("0 3 4 3") + ffccww); draw(circle((0.5616627952666793,1.8188126933028297), 3.909618252328949), linewidth(.2)); draw((-1.9568531576780028,4.809162551380778)--(4.410639715037714,2.5047365593503237), linewidth(.6)); draw(circle((1.4890348446515316,3.56207927434723), 1.5806559582896988), linewidth(.8) + linetype("0 3 4 3") + ffccww); draw(circle((2.975349771404595,3.0241748246651676), 1.5806559582896988), linewidth(.8) + linetype("0 3 4 3") + ffccww); draw((-0.5971215752586663,1.342537678207058)--(1.1472461165866783,0.7112427040154083), linewidth(.6)); draw((3.8999187808473232,3.8804645638873017)--(3.393842443001658,2.4820957356295454), linewidth(1) + blue); draw((0.8835638538423636,1.4630444139729173)--(2.0500355906591174,4.686190002545518), linewidth(1) + blue); draw((1.1157686343456616,1.3652439320874161)--(0.9605884860068272,0.936456680098532), linewidth(1) + blue); draw((3.393842443001658,2.4820957356295454)--(2.480815652166451,-0.04074144957299296), linewidth(1) + dotted + blue); draw((0.8835638538423636,1.4630444139729173)--(0.35009636738808303,-0.011010482808643689), linewidth(1) + dotted + blue); draw((0.9605884860068272,0.936456680098532)--(0.6163510660026768,-0.014725664649777547), linewidth(1) + dotted + blue); draw((1.7663533897947081,2.005940564914039)--(2.698031226261417,4.58031353409836), linewidth(1) + blue); draw((2.0500355906591174,4.686190002545518)--(2.636550068201025,6.306822111542891), linewidth(1) + dotted + blue); draw((1.1157686343456616,1.3652439320874161)--(2.8400594734986893,6.129731777115514), linewidth(1) + dotted + blue); draw((2.698031226261417,4.58031353409836)--(3.158491447090092,5.85263782849338), linewidth(1) + dotted + blue); draw((1.7663533897947081,2.005940564914039)--(1.0329608488960913,-0.020538824411080996), linewidth(1) + dotted + blue); draw((3.8999187808473232,3.8804645638873017)--(4.265146358737049,4.889646029108909), linewidth(1) + dotted + blue); draw(circle((3.158491447090092,5.85263782849338), 6.245965443394719), linewidth(0.4) + linetype("0 3 4 3") + zzttqq); draw(circle((4.265146358737049,4.889646029108909), 5.878514988137989), linewidth(0.4) + linetype("0 3 4 3") + zzttqq); draw(circle((3.158491447090092,5.85263782849338), 5.932214072179754), linewidth(0.4) + linetype("0 3 4 3") + zzttqq); draw(circle((4.265146358737049,4.889646029108909), 5.243334507768315), linewidth(0.4) + linetype("0 3 4 3") + zzttqq); draw(circle((1.0329608488960913,-0.020538824411080996), 6.245965443394719), linewidth(0.4) + linetype("0 3 4 3") + zzttqq); draw(circle((2.480815652166451,-0.04074144957299296), 5.932214072179754), linewidth(0.4) + linetype("0 3 4 3") + zzttqq); draw(circle((2.480815652166451,-0.04074144957299296), 5.243334507768315), linewidth(0.4) + linetype("0 3 4 3") + zzttqq); draw(circle((1.0329608488960913,-0.020538824411080996), 5.878514988137989), linewidth(0.4) + linetype("0 3 4 3") + zzttqq); draw((xmin, 71.6666666666668*xmin-613.4172534247484)--(xmax, 71.6666666666668*xmax-613.4172534247484), linewidth(.6) + linetype("2 2") + uyuaff); /* line */ draw((xmin, 71.6666666666668*xmin-630.6185892151414)--(xmax, 71.6666666666668*xmax-630.6185892151414), linewidth(.6) + linetype("2 2") + uyuaff); /* line */ draw((xmin, 1.1491841491841512*xmin-9.391154219870282)--(xmax, 1.1491841491841512*xmax-9.391154219870282), linewidth(.6) + linetype("2 2") + uyuaff); /* line */ draw((xmin, 1.1491841491841512*xmin-9.76154725864239)--(xmax, 1.1491841491841512*xmax-9.76154725864239), linewidth(.6) + linetype("2 2") + uyuaff); /* line */ draw((8.565621993881141,0.45232280340107067)--(10.052482137285102,-0.14639260983046232), linewidth(1) + ffqqtt); /* dots and labels */ dot((10.052482137285102,-0.14639260983046232),linewidth(1pt) + dotstyle); label("$C$", (10.197740086623446,-0.7929989030084024), NE * labelscalefactor); dot((-0.09829462558082054,-0.004753864302100857),linewidth(1pt) + dotstyle); label("$B$", (-0.8408327907004672,-0.8388021099682532), NE * labelscalefactor); dot((2.2938264100092884,6.605054260354767),linewidth(1pt) + dotstyle); label("$A$", (1.998966040810249,6.8561366592866975), NE * labelscalefactor); dot((0.2445433533807364,0.9425616038811464),linewidth(2pt) + dotstyle); dot((1.8921237620930325,5.495086417428272),linewidth(2pt) + dotstyle); dot((-2.8742685821539413,4.645670499377106),linewidth(2pt) + dotstyle); dot((5.010935697627709,1.7919775219323129),linewidth(2pt) + dotstyle); dot((2.3972417088506135,2.737885822632596),linewidth(2pt) + dotstyle); dot((0.5363577356508675,3.4113485938858394),linewidth(2pt) + dotstyle); dot((0.8835638538423636,1.4630444139729173),linewidth(2pt) + dotstyle); dot((2.0500355906591174,4.686190002545518),linewidth(2pt) + dotstyle); dot((2.636550068201025,6.306822111542891),linewidth(2pt) + dotstyle); label("$P_1$", (2.525702920848527,6.466809400127965), NE * labelscalefactor); dot((0.5616627952666793,1.8188126933028297),linewidth(2pt) + dotstyle); dot((1.1619587778566753,1.1060536558848182),linewidth(2pt) + dotstyle); dot((-0.35575262920925976,1.6553206412991572),linewidth(2pt) + dotstyle); dot((1.1619587778566753,1.1060536558848182),linewidth(2pt) + dotstyle); dot((0.9143983424958136,1.19564695630113),linewidth(2pt) + dotstyle); dot((0.9605884860068272,0.936456680098532),linewidth(2pt) + dotstyle); dot((1.1157686343456616,1.3652439320874161),linewidth(2pt) + dotstyle); dot((2.8400594734986893,6.129731777115514),linewidth(2pt) + dotstyle); label("$P_2$", (2.9379317834871794,6.214891761848786), NE * labelscalefactor); dot((-2.0083565001645387,5.227937390323981),linewidth(2pt) + dotstyle); dot((4.718224664843654,2.79355563536863),linewidth(2pt) + dotstyle); dot((4.050554921634989,3.0351884948155763),linewidth(2pt) + dotstyle); dot((3.2432063022139928,3.327371804701271),linewidth(2pt) + dotstyle); dot((3.393842443001658,2.4820957356295454),linewidth(2pt) + dotstyle); dot((3.8999187808473232,3.8804645638873017),linewidth(2pt) + dotstyle); dot((2.480815652166451,-0.04074144957299296),linewidth(2pt) + dotstyle); label("$Q_4$", (2.1592772651697247,-0.7700972995284769), NE * labelscalefactor); dot((-1.9568531576780028,4.809162551380778),linewidth(2pt) + dotstyle); dot((4.410639715037714,2.5047365593503237),linewidth(2pt) + dotstyle); dot((1.4890348446515316,3.56207927434723),linewidth(2pt) + dotstyle); dot((2.975349771404595,3.0241748246651676),linewidth(2pt) + dotstyle); dot((1.7663533897947081,2.005940564914039),linewidth(2pt) + dotstyle); dot((2.698031226261417,4.58031353409836),linewidth(2pt) + dotstyle); dot((3.158491447090092,5.85263782849338),linewidth(2pt) + dotstyle); label("$P_3$", (3.258554232206131,5.94007252008968), NE * labelscalefactor); dot((1.0329608488960913,-0.020538824411080996),linewidth(2pt) + dotstyle); label("$Q_3$", (0.945492280733693,-0.7013924890887006), NE * labelscalefactor); dot((-0.5971215752586663,1.342537678207058),linewidth(2pt) + dotstyle); dot((1.1472461165866783,0.7112427040154083),linewidth(2pt) + dotstyle); dot((4.265146358737049,4.889646029108909),linewidth(2pt) + dotstyle); label("$P_4$", (4.334929595762612,5.046909984372587), NE * labelscalefactor); dot((0.35009636738808303,-0.011010482808643689),linewidth(2pt) + dotstyle); label("$Q_1$", (0.12103455545638825,-0.7700972995284769), NE * labelscalefactor); dot((0.6163510660026768,-0.014725664649777547),linewidth(2pt) + dotstyle); label("$Q_2$", (0.5561650215749657,-0.7013924890887006), NE * labelscalefactor); dot((8.681671984167608,8.769238773931253),linewidth(4pt) + dotstyle); label("$R_3$", (9.304577550906364,8.894379369000063), NE * labelscalefactor); dot((8.90172069862853,7.338060853237748),linewidth(4pt) + dotstyle); label("$R_4$", (9.877117637904494,7.0622510906060265), NE * labelscalefactor); dot((2.9937932286142077,-5.950734495611989),linewidth(4pt) + dotstyle); label("$S_3$", (2.411194903448901,-5.121401960714312), NE * labelscalefactor); dot((4.126886251451985,-5.018994992987768),linewidth(4pt) + dotstyle); label("$S_4$", (3.3959638530856817,-4.388550649356698), NE * labelscalefactor); dot((8.565621993881141,0.45232280340107067),linewidth(4pt) + dotstyle); label("$H_3$", (7.701465307311606,0.37498287446779555), NE * labelscalefactor); dot((8.804299583476716,0.35621426735767486),linewidth(4pt) + dotstyle); label("$H_4$", (8.754939067388161,-0.7929989030084024), NE * labelscalefactor); clip((xmin,ymin)--(xmin,ymax)--(xmax,ymax)--(xmax,ymin)--cycle); [/asy][/asy] We claim that Fyodor can draw the altitudes. WLOG let Fyodor draw on side $AB$ of an acute triangle $ABC$ ($A,B,C$ are not marked points). Then, Fyodor marks sufficiently many points on $AB$ and draws circles centered at one, and passing through another. Fyodor then marks the intersection points of these circles. Note that the lines formed by connecting these intersections is perpendicular to $AB$. Then, he can mark sufficiently many points on these perpendicular lines, draw circles centered at one of these points and passing through each other point, and finally mark the intersections of these circles. Extend these lines to meet $AC$ and $BC$ at $P_1, P_2, \ldots P_n$ and $Q_1, Q_2, \ldots Q_n$, respectively. Next, Fyodor can draw circles centered at $P_1$, passing through $Q_1, Q_2, \ldots, Q_n$. He repeats this, drawing circles centered at $P_2, P_3, \ldots P_n$. If the intersection points of these circles are $R_1, R_2, \ldots$, then $R_1$ is the reflection of $Q_1$ over $AC$, $R_2$ the reflection of $Q_2$ over $AC$, and so on. Construct $S_1, S_2, \ldots$ as follows. Finally, Fyodor can construct the perpendiculars from $R_1, R_2, \ldots$ to $BC$ and the perpendiculars from $S_1, S_2, \ldots$ to $AC$. The intersection points $H_i$ are the orthocenters of triangles $R_i S_i C$. Hence, these points lie on the $C-$altitude of $ABC$. Repeating this construction on all $3$ sides, Fyodor can draw the altitudes. $\quad \blacksquare$
12.06.2022 02:46
This should still hold if Ivan can delete $1000$ points, right?