NC207191. 适配问题
描述
问题描述:给定两个圆和一个矩形,你的任务是判断这两个圆是否都能被放入这个矩形中,且没有任何一部分圆在矩形之外。(两个圆可以重叠)
输入描述
输入四个浮点数:a,b,r1,r2,其中的a和b分别是矩形的两条边,r1和r2分别是两个圆的半径。
输出描述
如果这些圆可以被放入矩形中打印“Yes”,否则打印“No”。
当x和y是浮点数时,如果x<y + 0.01,你可以安全的认为x<y。
示例1
输入:
5 4 1 1
输出:
Yes
示例2
输入:
3.1 4.8 5.5 1
输出:
No
C(clang 3.9) 解法, 执行用时: 4ms, 内存消耗: 356K, 提交时间: 2020-06-03 15:31:01
#include <stdio.h> int main() { float a=0.0,b=0.0,r1=0.0,r2=0.0; scanf("%f %f %f %f",&a,&b,&r1,&r2); if((2*r1<a)&&(2*r1<b)&&(2*r2<a)&&(2*r2<b)) printf("Yes\n"); else printf("No\n"); return 0; }
C++14(g++5.4) 解法, 执行用时: 5ms, 内存消耗: 500K, 提交时间: 2020-06-03 15:43:06
#include<iostream> using namespace std; int main() { float a,b,r1,r2; cin>>a>>b>>r1>>r2; float min,max; min=a<=b?a:b; max=r1>=r2?r1:r2; if(min>max*2) cout<<"Yes"<<endl; else cout<<"No"<<endl; return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 484K, 提交时间: 2020-06-03 14:52:06
#include<stdio.h> int main() { float a,b,r1,r2,r; scanf("%f %f %f %f",&a,&b,&r1,&r2); if(r1<=r2) r=r2; else r=r1; if(a>2*r&&b>2*r) printf("Yes"); else printf("No"); return 0; }