列表

详情


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;
}

上一题