#B4511. [四川青少年 C++ 算法设计大赛 2025] 圆的公切线

    ID: 18238 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 1 上传者: 标签>四川2025分支结构科创活动小学活动

[四川青少年 C++ 算法设计大赛 2025] 圆的公切线

题目描述

平面上两个圆的位置关系有 6 种,每种情况两圆的公切线条数也不同。

设两圆半径分别为 r1,r2 r_1, r_2 ,两圆圆心距离为 d d ,则 6 种情况分别为:

  • 内含:r1r2>d |r_1 - r_2| > d ,公切线条数为 0 0
  • 内切:r1r2=d |r_1 - r_2| = d ,公切线条数为 1 1
  • 相交:r1r2<d<r1+r2 |r_1 - r_2| < d < r_1 + r_2 ,公切线条数为 2 2
  • 外切:r1+r2=d r_1 + r_2 = d ,公切线条数为 3 3
  • 外离:r1+r2<d r_1 + r_2 < d ,公切线条数为 4 4
  • 重合:r1r2=d=0 |r_1 - r_2| = d = 0 ,公切线条数为无穷多。注意:重合是一种特殊情况,如果满足重合关系,就不再计其他关系。给出两圆的情况,求公切线条数。

输入格式

一行三个整数 r1,r2 r_1, r_2 0r1,r2100 0 \leq r_1, r_2 \leq 100 )和 d d 0d100 0 \leq d \leq 100 )。

输出格式

输出一个整数,表示公切线条数;如果公切线有无穷多条,输出 inf。

1 1 0
inf

提示

本题共有 25 组测试数据,每组测试数据 4 分。