In acute triangle $\triangle ABC$, $BC>AC$, $\Gamma$ is its circumcircle, $D$ is a point on segment $AC$ and $E$ is the intersection of the circle with diameter $CD$ and $\Gamma$. $M$ is the midpoint of $AB$ and $CM$ meets $\Gamma$ again at $Q$. The tangents to $\Gamma$ at $A,B$ meet at $P$, and $H$ is the foot of perpendicular from $P$ to $BQ$. $K$ is a point on line $HQ$ such that $Q$ lies between $H$ and $K$. Prove that $\angle HKP=\angle ACE$ if and only if $\frac{KQ}{QH}=\frac{CD}{DA}$.
Problem
Source: Bulgarian TST 2020 P1
Tags: geometry, circumcircle
Leondorus
23.01.2021 20:47
Notice that only one direction is sufficient since there exist only one point $K$ (or $D$) with fixed ratio or angle.
Suppose $\angle ACE = \angle HKP$. Let $X$ be intersecton of line $CE$ and perpendicular to $CA$ at $A$. Then we have $\Delta XAC \sim \Delta PHK$. So we need to prove that $\Delta XAD \sim \Delta PHQ$.
$\angle XDA = \angle XEA = \angle B$.
Let $C'$ be the second intersection of line $PQ$ and $\Gamma$. Then because $AQBC'$ is harmonic ($C'Q$ and tangets to $A$ and $B$ are concurrent). And so $(CC'\cap AB, M; A, B) \stackrel{C}{=} (C', Q; A, B) = -1$. Because $M$ is a midpoint of $AB$ we have $CC' \parallel AB$. So arc $CA$ is equal to arc $C'B$ and $\angle C'QB = \angle B$. $\blacksquare$
[asy][asy]
/* Geogebra to Asymptote conversion, documentation at artofproblemsolving.com/Wiki go to User:Azjps/geogebra */
import graph; size(10cm);
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 = -19.492078003261515, xmax = 22.401179340253346, ymin = -10.905498284076836, ymax = 8.99839923857405; /* image dimensions */
pen xdxdff = rgb(0.49019607843137253,0.49019607843137253,1); pen wqwqwq = rgb(0.3764705882352941,0.3764705882352941,0.3764705882352941);
draw(arc((4.05549477741055,5.091113495560913),0.9200568962704582,-86.96418907643331,-56.36418907643331)--(4.05549477741055,5.091113495560913)--cycle, linewidth(1pt) + xdxdff);
draw((5.140403893502762,-3.081228522970787)--(5.105949187486578,-2.4315630556564525)--(4.456283720172244,-2.466017761672636)--(4.490738426188427,-3.1156832289869705)--cycle, linewidth(1pt) + wqwqwq);
draw((0.47154230479844805,-6.653726252490758)--(0.12907441647912987,-7.206870077962507)--(0.6822182419508795,-7.549337966281826)--(1.0246861302701975,-6.996194140810076)--cycle, linewidth(1pt) + wqwqwq);
draw(arc((-2.922066962136819,-4.552641243656022),0.9200568962704582,-62.3628887253101,-31.762888725310084)--(-2.922066962136819,-4.552641243656022)--cycle, linewidth(1pt) + xdxdff);
draw((4.980715079015951,3.7004315263691825)--(4.439059580135087,3.340068283627172)--(4.799422822877098,2.7984127847463087)--(5.341078321757961,3.1587760274883188)--cycle, linewidth(1pt) + wqwqwq);
/* draw figures */
draw((4.490738426188427,-3.1156832289869705)--(-5.292533237487444,-3.0850146657779516), linewidth(1pt));
draw((-5.292533237487444,-3.0850146657779516)--(4.05549477741055,5.091113495560913), linewidth(1pt));
draw((4.05549477741055,5.091113495560913)--(4.490738426188427,-3.1156832289869705), linewidth(1pt));
draw(circle((-0.38885722236940623,0.7404695189696496), 6.2193542839267435), linewidth(1pt));
draw((-0.42042702466411236,-9.33029741304035)--(4.490738426188427,-3.1156832289869705), linewidth(1pt));
draw((-0.42042702466411236,-9.33029741304035)--(-5.292533237487444,-3.0850146657779516), linewidth(1pt));
draw((4.05549477741055,5.091113495560913)--(9.344224479356628,-2.8582808526426438), linewidth(1pt));
draw((4.1982971287924,2.3984840387749706)--(5.341078321757961,3.1587760274883188), linewidth(1pt));
draw((4.490738426188427,-3.1156832289869705)--(9.344224479356628,-2.8582808526426438), linewidth(1pt));
draw((5.341078321757961,3.1587760274883188)--(4.490738426188427,-3.1156832289869705), linewidth(1pt));
draw((4.1982971287924,2.3984840387749706)--(9.344224479356628,-2.8582808526426438), linewidth(1pt));
draw((4.05549477741055,5.091113495560913)--(-1.6271471545718812,-5.354364830937158), linewidth(1pt));
draw((1.0246861302701975,-6.996194140810076)--(-5.292533237487444,-3.0850146657779516), linewidth(1pt));
draw((-0.42042702466411236,-9.33029741304035)--(1.0246861302701975,-6.996194140810076), linewidth(1pt));
draw((-0.42042702466411236,-9.33029741304035)--(-2.922066962136819,-4.552641243656022), linewidth(1pt));
draw((-4.805845377481754,5.118891991344279)--(-0.42042702466411236,-9.33029741304035), linewidth(1pt));
draw((-4.805845377481754,5.118891991344279)--(4.05549477741055,5.091113495560913), linewidth(1pt));
/* dots and labels */
dot((4.490738426188427,-3.1156832289869705),dotstyle);
label("$A$", (4.582744115815473,-3.6983859299582544), NE * labelscalefactor);
dot((-5.292533237487444,-3.0850146657779516),dotstyle);
label("$B$", (-5.813898812040703,-3.606380240331209), NE * labelscalefactor);
dot((4.05549477741055,5.091113495560913),dotstyle);
label("$C$", (4.2147213573072895,5.2875030902832085), NE * labelscalefactor);
dot((5.341078321757961,3.1587760274883188),linewidth(4pt) + dotstyle);
label("$E$", (5.472132448876916,3.4167207345332793), NE * labelscalefactor);
dot((4.1982971287924,2.3984840387749706),linewidth(4pt) + dotstyle);
label("$D$", (3.5400129667089537,2.465995275053807), NE * labelscalefactor);
dot((9.344224479356628,-2.8582808526426438),linewidth(4pt) + dotstyle);
label("$X$", (9.459045666048901,-2.6249862176427214), NE * labelscalefactor);
dot((-0.42042702466411236,-9.33029741304035),linewidth(4pt) + dotstyle);
label("$P$", (-0.17088318158189372,-9.617418629298195), NE * labelscalefactor);
dot((-0.40089740564950826,-3.100348947382461),linewidth(4pt) + dotstyle);
label("$M$", (-0.26288887120893956,-2.8703347233148433), NE * labelscalefactor);
dot((-1.6271471545718812,-5.354364830937158),linewidth(4pt) + dotstyle);
label("$Q$", (-2.0416655373318253,-5.783848228171291), NE * labelscalefactor);
dot((1.0246861302701975,-6.996194140810076),linewidth(4pt) + dotstyle);
label("$H$", (0.7798422778975796,-6.6732365612327325), NE * labelscalefactor);
dot((-2.922066962136819,-4.552641243656022),linewidth(4pt) + dotstyle);
label("$K$", (-2.808379617557207,-4.3117571941385595), NE * labelscalefactor);
dot((-4.805845377481754,5.118891991344279),linewidth(4pt) + dotstyle);
label("$C'$", (-5.231196111069413,5.440845906328285), NE * labelscalefactor);
clip((xmin,ymin)--(xmin,ymax)--(xmax,ymax)--(xmax,ymin)--cycle);
/* end of picture */
[/asy][/asy]