p2010_公式计算.cpp
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 36 行
CPP
36 行
#include <stdio.h>
#include <math.h>
#define pi acos ( -1 )
#include <algorithm>
using namespace std;
bool TryPut ( int a , int b , int x , int y )
{
double l = sqrt ( (double)x * x + y * y ) , alfa1 , alfa2 , l2;
if ( l <= b ) alfa1 = 0; else alfa1 = acos ( b / l );
alfa2 = atan ( (double)y / x ) + alfa1;
if ( alfa2 > pi / 2 ) return false;
l2 = x * sin ( alfa2 ) + y * cos ( alfa2 );
return l2 < a + 1e-10;
}
bool check ( int A , int B , int X , int Y )
{
if ( A >= X && B >= Y ) return true;
if ( A < X && B < Y ) return false;
return TryPut ( A , B , X , Y );
}
main ()
{
int Total , A , B , X , Y;
for ( scanf ( "%d" , &Total ); Total; Total -- ) {
scanf ( "%d%d%d%d" , &A , &B , &X , &Y );
if ( A < B ) swap ( A , B );
if ( X < Y ) swap ( X , Y );
if ( check ( A , B , X , Y ) ) printf ( "Escape is possible.\n" );
else printf ( "Box cannot be dropped.\n" );
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?