⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1027.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1027 on 2005-12-14 at 22:18:34 */ 
#include <cstdio>
#include <cmath>

const double eps = 1e-2;

bool check(double, double, double, double);

int main()
{
	int t, T;
	
	scanf("%d", &T);
	for(t = 0; t < T; t++) {
		double a, b, x, y;
		scanf("%lf %lf %lf %lf", &a, &b, &x, &y);
		if(check(a, b, x, y) || check(b, a, x, y) ||
			check(a, b, y, x) || check(b, a, y, x)) {
			printf("Escape is possible.\n");
		} else {
			printf("Box cannot be dropped.\n");
		}
	}
	
	return 0;
}

bool check(double a, double b, double x, double y)
{
	double p = sqrt(x*x + y*y);
	double m = x < y ? x : y;
	if(p - a < eps) {
		return (m - b < eps);
	} else {
		
		double i = atan(x/y) + acos(a/p);
		if(i > M_PI/2) {
			return false;
		} else {
			double l = sqrt(p*p-a*a) + 2*x*sin(M_PI/2-i);
			return (l - b < eps);
		}
	}
}

⌨️ 快捷键说明

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