📄 1027.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 + -