2次元平面上の原点に、一歩Rで進む高橋君がいるとき、高橋君が点(X, Y)に到達するまでに必要な最小歩数を求める問題です。
提出
import math
r, x, y = map(int, input().split())
if math.sqrt(x**2+y**2)<r:
ans = 2
else:
ans = math.ceil(math.sqrt(x**2+y**2)/r)
print(ans)
問題文のように、点(x1, y1)と点(x2, y2)のユークリッド距離は√(x1-x2)2+(y1-y2)2 で求められます。
高橋君はちょうどRの距離しか進めないことを考えます。
原点と点(X, Y)のユークリッド距離がRより大きく、2Rより小さい場合、どの点であっても、最小2歩で到達できます。
(上図は分かりやすくするために、点(X, Y)がX軸上にありますが、角度や大きさを適宜変更して考えると、他の座標点でも当てはまることが分かります。)
同じように2Rより大きく、3Rより小さい場合は、3歩で到達できます。
ということで、ユークリッド距離√x2+y2を r(=R) で割った数の切り上げが答えになります。
ただし、例外があり、原点と点(X, Y)のユークリッド距離がRより小さい場合は、1歩ではなく、2歩歩かなくては到達できません。
この場合分けを行い、答えを出力します。