2172.txt

来自「北大ACM题目例程 详细的解答过程 程序实现 算法分析」· 文本 代码 · 共 52 行

TXT
52
字号

#include <stdio.h>
#include <math.h>

const double eps = 1e-7;

//矩形x*y 能否放入 a*b 中
bool canfit( double a, double b, double x, double y )
{
	double t;
	double l=sqrt(x*x+y*y),ll=x*x+y*y;

	if(x*x+y*y - a*a-b*b > eps)
		return 0;
	
	if(x<y)
	{
		t=x;x=y;y=t;
	}
	if(a<b)
	{
		t=a;a=b;b=t;
	}
	if( x-b >eps && y -b > eps )return 0;

	double s=(4*x*y*b+sqrt(16*x*x*y*y*b*b-4*ll*(4*x*x*y*y-ll*ll+b*b*ll) ) )/ll/2;

	if(s-a > eps)
		return 0;
	else return 1;
}
	



int main()
{
	
	double a, b, c, d, e;

	scanf( "%lf %lf %lf %lf %lf", &a, &b, &c, &d, &e );

	if( canfit( d, e, a, b ) || canfit( d, e, a, c ) || canfit( d, e, b, c ) )
		printf( "YES\n" );
	else
		printf( "NO\n" );
	
	return 0;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?