Problem (Contest): https://www.codechef.com/COCS2019/problems/ANWCC05

**Problem Statement in brief:**

Given points P,S and R, determine whether it is possible to draw a circle passing through S and R such that PS is a tangent. If possible then determine the length QR where Q intersection of line PR with the circle (other than R). If QR is zero, print -1.

**Pre-requisites:**

High school geometry lemmas.

**Solution:**

Such a circle is possible only when P,R,S are not collinear. So check for slopes of the lines PR and PS, i.e., \frac{y_p-y_r}{x_p-x_r}==\frac{y_p-y_s}{x_p-x_s}. Make separate checks to deal with cases when lines are parallel to y-axis (division by zero!).

Now we use the formula for **Power of a point**.

If such a circle exists, then pow(P)=PS^2=PQ\cdot PR.

Let QR=x. If R is closer to P than Q, then PQ=PR+x. If Q is closer, then PQ=PR-x.

So, PS^2=PR\cdot(PR\pm x)\Rightarrow \pm x=\frac{PS^2-PR^2}{PR}\Rightarrow x=\left|\frac{PS^2-PR^2}{PR}\right|.

Now just check if PS^2==PR^2, then print -1, otherwise compute the value of x and print it.

Required distance formula: PR^2=(x_p-x_r)^2+(y_p-y_r)^2.

**Here** is my solution.