题目来源:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=608
分析:
两个圆放到矩形的临界点图为:
其中a为长, b为宽, r1 > r2
红色三角形的三边长分别为:
x = a - (r1 +r2)
y = b - (r1 + r2)
z = r1 +r2
当 x ^ 2 + y ^ 2 >= z^2 时, 显然 矩形是可以放进去圆的。
代码如下:
int main()
{
double w, l , r1 ,r2 ;
while( scanf("%lf%lf%lf%lf" , &w, &l ,&r1 ,&r2)!= EOF){
if(w > l)
swap(w, l) ;
if(r1 > r2)
swap(r1 , r2) ;
double r = r1 +r2 ;
double d = (l -r)*(l -r) + (w -r)*(w -r) ;
if( (w > 2*r2 ) && (d > r*r) )
puts("Yes");
else puts("No") ;
}}
zoj 1608 Two Circles and a Rectangle 判断两个圆是否能放入一个矩形中
时间: 2024-11-14 07:28:57