Problem 1016 无归之室

Accept: 926    Submit: 7502
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

金字塔中有一个房间名叫“无归之室”。房间地面完全由相同的矩形瓷砖覆盖。房间里布满无数的机关和陷阱,这正是其名字的由来。考古队花了几年时间研究对策,最后他们想出了一个方案。一台遥控的机器人将被送入房间,解除所有机关,然后返回。为了不触动机关,机器人必须走在瓷砖的中心区域上,绝对不能碰到瓷砖的边缘。如果走错一步,机器人会被落下的岩石砸成薄饼。

当考古队正准备行动的时候,他们发现了一件可怕的事情:他们没有考虑到机器人携带的工具箱。由于机器人必须将工具箱放在地面上才能开始解除机关,工具箱不可碰到瓷砖的边缘。现在他们急需你编程判断工具箱可否放下。

 Input

输入文件有多组数据组成。每组数据仅含一行A, B, X, Y (1<=A, B, X, Y<=50000,均为实数)。A, B为瓷砖的长和宽,X, Y为工具箱底面的长和宽(工具箱为长方体)。最后一组数据A=B=X=Y=0,标志文件结束,不需要处理。

 Output

若工具箱能以某种方式放在地上,则输出”Escape is possible.”,否则输出”Box cannot be dropped.”。

 Sample Input

10 10 8 8
8 8 10 10
0 0 0 0

 Sample Output

Escape is possible.
Box cannot be dropped.

审题:1、这一题要用实数,不能想当然直接用int

2、sqrt()括号里要求用浮点数 不能用整数

大矩形与小矩形存在三种情况

  1. 大矩形的长大于小矩形的长,宽大于小矩形的宽,这时肯定可以放得下去;
  2. 大矩形的对角线小于小矩形的对角线,那么也就没有地方容下小矩形了,这时判定否;//重点
  3. 当小矩形的长大于大矩形的长时,此时斜放也可能放进大矩形 //重点
# include<iostream>
# include<math.h>
using namespace std;
int QuickReject(double a,double b,double x,double y) //对全部矩形对进行初步筛选
{
if(x < a && y < b) //绝对满足要求的矩形
{
return ;
}
else if(x*x+y*y>a*a+b*b) //绝对不满足要求的矩形
{
return ;
}
else //可能满足要求也可能不满足的可疑矩形
{
return ;
}
}
int Reject(double a,double b,double x,double y) //对可疑矩形进行进一步筛选
{
double L1,L2;
L1=(a-sqrt((double)(x*x+y*y-b*b)))/;
L2=(b-sqrt((double)(x*x+y*y-a*a)))/;
if( L1*L1+L2*L2>y*y )
{
return ;
}
else
{
return ;
}
}
int main()
{
double A,B,X,Y;
while(true)
{
cin>>A>>B>>X>>Y;
if(A== && B== && X== && Y==)
{
break;
}
if(A < B)
{
double t;
t=A;A=B;B=t;
}
if(X < Y)
{
double t;
t=X;X=Y;Y=t;
}
int flag;
flag = QuickReject(A,B,X,Y);
if(flag == )
{
cout<<"Escape is possible."<<endl;
}
else if(flag == )
{
cout<<"Box cannot be dropped."<<endl;
}
else
{
flag = Reject(A,B,X,Y);
if(flag == )
{
cout<<"Escape is possible."<<endl;
}
else
{
cout<<"Box cannot be dropped."<<endl;
}
}
}
return ;
}

FOJ Problem 1016 无归之室的更多相关文章

  1. Problem 1016 咒文卷轴 优先队列+前缀和+rmq

    题目链接: 题目 Problem 1016 咒文卷轴 Time Limit: 3000 mSec Memory Limit : 131072 KB 问题描述 小Y 是一个魔法师,有一天他获得了一卷神秘 ...

  2. FOJ ——Problem 1759 Super A^B mod C

     Problem 1759 Super A^B mod C Accept: 1368    Submit: 4639Time Limit: 1000 mSec    Memory Limit : 32 ...

  3. FOJ Problem 1015 土地划分

    Problem 1015 土地划分 Accept: 823    Submit: 1956Time Limit: 1000 mSec    Memory Limit : 32768 KB  Probl ...

  4. foj Problem 2107 Hua Rong Dao

    Problem 2107 Hua Rong Dao Accept: 503    Submit: 1054Time Limit: 1000 mSec    Memory Limit : 32768 K ...

  5. foj Problem 2282 Wand

     Problem 2282 Wand Accept: 432    Submit: 1537Time Limit: 1000 mSec    Memory Limit : 262144 KB Prob ...

  6. FOJ Problem 2273 Triangles

    Problem 2273 Triangles Accept: 201    Submit: 661Time Limit: 1000 mSec    Memory Limit : 262144 KB P ...

  7. foj Problem 2275 Game

    Problem D Game Accept: 145    Submit: 844Time Limit: 1000 mSec    Memory Limit : 262144 KB Problem D ...

  8. foj Problem 2283 Tic-Tac-Toe

                                                                                                    Prob ...

  9. FOJ Problem 2257 Saya的小熊饼干

                                                                                                        ...

随机推荐

  1. 创建git及其初始化

    创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit 初始化一个 ...

  2. js将数字转换成中文

           var _change = {            ary0:["零", "一", "二", "三", ...

  3. vue 城市列表与字母表联动

    实现两个联动 一是点击右侧字母的时候,城市列表出现相应首字母下的城市 二是鼠标在字母表上滑动的时候,城市列表实时跟着变化 一.点击字母出现相应的列表,给每个字母设置handleLetterClick事 ...

  4. 2017年10月26日 git上传文件失败的文件

    最近几天因为项目要用git,于是学习了一下git.今天上传项目到码云的时候,却发现总有一些文件夹上传不上去,git 也显示everything is update.找了一圈办法,都没有用,最后突然发现 ...

  5. .NET向WebService传值为decimal、double、int、DateTime等非string类型属性时,服务器端接收不到数据的问题

    最近在做CRM项目时,使用C#调用SAP PI发布的WebService服务时遇到的问题: 向WebService传值为decimal.double.int.DateTime等非string类型数据时 ...

  6. Linux实战教学笔记15:用户管理初级(下)

    第十四节 用户管理初级(下) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,用户查询相关命令id,finger,users,w,who,last,lastlog,gr ...

  7. python--随笔一

    1.format函数--根据关键字和位置选择性插入数据 In [11]: '{mingzi}jintian{dongzuo}'.format(mingzi='duzi',dongzuo='i love ...

  8. php扩展开发-资源类型

    资源类型在内核中的结构 //zend_list.h typedef struct _zend_rsrc_list_entry { void *ptr; int type; int refcount; ...

  9. C细节错误

    2018.11.20 (1)有关优先级的细节 while (c = getchar() && c == '\n') { printf("c = %d\n", c); ...

  10. 如何用管理员账户登录windows10

    1.判断自己是否是管理员 在命令行中输入  whoami   只要显示不是  administrator  都不是管理员 2.  接着在命令行中输入 net user  可以查看这台电脑有多少个用户  ...