B4511 [四川青少年 C++ 算法设计大赛 2025] 圆的公切线
题目描述
平面上两个圆的位置关系有 6 种,每种情况两圆的公切线条数也不同。
设两圆半径分别为 $ r_1, r_2 $,两圆圆心距离为 $ d $,则 6 种情况分别为:
- 内含:$ |r_1 - r_2| > d $,公切线条数为 $ 0 $;
- 内切:$ |r_1 - r_2| = d $,公切线条数为 $ 1 $;
- 相交:$ |r_1 - r_2| < d < r_1 + r_2 $,公切线条数为 $ 2 $;
- 外切:$ r_1 + r_2 = d $,公切线条数为 $ 3 $;
- 外离:$ r_1 + r_2 < d $,公切线条数为 $ 4 $;
- 重合:$ |r_1 - r_2| = d = 0 $,公切线条数为无穷多。**注意**:重合是一种特殊情况,如果满足重合关系,就不再计其他关系。给出两圆的情况,求公切线条数。
输入格式
一行三个整数 $ r_1, r_2 $($ 0 \leq r_1, r_2 \leq 100 $)和 $ d $($ 0 \leq d \leq 100 $)。
输出格式
输出一个整数,表示公切线条数;如果公切线有无穷多条,输出 inf。
说明/提示
本题共有 25 组测试数据,每组测试数据 4 分。