给你一个矩形和两个圆的半径,问这个矩形是否可以容纳下这两个圆。
计算几何初步 画一下图就可以得到答案 此时的a b为恰巧容纳下 r1 r2的临界态. 此时 (r1+r2)2==(a−r1−r2)2+(b−r1−r2)2 ( r 1 + r 2 ) 2 == ( a − r 1 − r 2 ) 2 + ( b − r 1 − r 2 ) 2 判断一下即可.
题目传送
#include <cstdio> #include <iostream> using namespace std; int main() { double a,b,r1,r2; while((std::scanf("%lf%lf%lf%lf",&a,&b,&r1,&r2))!=EOF) ((r1+r2)*(r1+r2)<(a-r1-r2)*(a-r1-r2)+(b-r1-r2)*(b-r1-r2)+0.01)?puts("Yes"):puts("No"); return 0; }