CF98C.Help Greg the Dwarf
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A very unusual citizen lives in a far away kingdom — Dwarf Gracula. However, his unusual name is not the weirdest thing (besides, everyone long ago got used to calling him simply Dwarf Greg). What is special about Dwarf Greg — he's been living for over 200 years; besides, he lives in a crypt on an abandoned cemetery and nobody has ever seen him out in daytime. Moreover, nobody has ever seen Greg buy himself any food. That's why nobody got particularly surprised when after the infernal dragon's tragic death cattle continued to disappear from fields. The people in the neighborhood were long sure that the harmless dragon was never responsible for disappearing cattle (considering that the dragon used to be sincere about his vegetarian views). But even that's not the worst part of the whole story.
The worst part is that merely several minutes ago Dwarf Greg in some unintelligible way got inside your house and asked you to help him solve a problem. The point is that a short time ago Greg decided to order a new coffin (knowing his peculiar character, you are not surprised at all). But the problem is: a very long in both directions L-shaped corridor leads to Greg's crypt, and you can't drag just any coffin through that corridor. That's why he asked you to help.

You've formalized the task on a plane like this: let the corridor's width before and after the turn be equal to a and b correspondingly (see the picture). The corridor turns directly at a right angle, the coffin is a rectangle whose length and width are equal to l and w (l ≥ w) correspondingly. Dwarf Greg has already determined the coffin's length (l), which is based on his height; your task is to determine the coffin's maximally possible width (w), at which it can be brought to the crypt. Besides, due to its large mass (pure marble!) the coffin is equipped with rotating wheels; therefore it is impossible to lift it off the ground, however, arbitrary moves and rotations of the coffin in the plane become possible. The coffin may be rotated arbitrarily just before you drag it into crypt and move through the corridor.
Greg promised that if you help him, he will grant you immortality (I wonder how?). And if you don't, well... trust me, you don't want to know what happens if you don't help him...
一位非常特别的居民生活在遥远的王国中——矮人格拉库拉(Dwarf Gracula)。然而,他这个不同寻常的名字并非最离奇之处(况且,大家早已习惯简单地称他为“矮人格雷格”(Dwarf Greg))。矮人格雷格真正特殊的地方在于:他已经活了200多年;此外,他住在一座废弃墓地的地下墓穴中,且从未有人在白天见过他外出;更奇特的是,也从未有人见过格雷格为自己购买过任何食物。因此,当那条地狱之龙不幸死后,牲畜仍持续从田野中消失时,人们并未感到特别惊讶。邻近居民早先就坚信,那只无害的龙从来不是牲畜失踪事件的元凶(毕竟,这条龙一向真诚地坚持素食主义)。但这些,甚至都还不是整个故事中最糟糕的部分。
最糟糕的部分是:仅仅几分钟前,矮人格雷格以某种难以理解的方式闯入了你的家中,并请求你帮他解决一个问题。事情是这样的:不久前,格雷格决定订购一口新棺材(考虑到他那古怪的性格,你对此毫不惊讶)。但问题在于:通往格雷格墓穴的是一条在两个方向上都极长的L形走廊,而你无法拖着任意尺寸的棺材穿过该走廊。因此,他向你求助。

你已将该问题形式化为平面上的几何模型:设走廊在拐角前后的宽度分别为 a 和 b(见图示)。走廊在拐角处恰好成直角;棺材是一个矩形,其长度和宽度分别为 l 和 w(其中 l≥w)。矮人格雷格已根据自身身高确定了棺材的长度 l;你的任务是求出棺材所能具有的最大可能宽度 w,使得它仍能被运入墓穴。此外,由于棺材质量极大(纯大理石制成!),其底部装有旋转轮子;因此无法将其抬离地面,但在平面内可进行任意移动与旋转。在将棺材拖入墓穴并沿走廊运送之前,你可以对其在平面内进行任意角度的旋转。
格雷格承诺:若你助他一臂之力,他将赐予你永生(我倒要好奇这究竟是如何实现的?);而倘若你不帮……信我,你绝不想知道不帮忙的后果……
输入格式
The first line contains three space-separated integers a, b and l from the problem's statement (1 ≤ a, b, l ≤ 104).
第一行包含三个由空格分隔的整数 a、b 和 l,来自题目的描述(1 ≤ a, b, l ≤ 104)。
输出格式
Print the maximally possible width of a coffin with absolute or relative error no more than 10 - 7. If a coffin with the given length and positive width (the coffin that would meet the conditions from the problem's statement) does not exist, print "My poor head =(" (without quotes).
It is guaranteed that if the answer is positive, it will be not less than 10 - 7. All the hacks will also be checked to meet that condition.
输出棺材的最大可能宽度,绝对或相对误差不超过 10−7。如果不存在满足给定长度且宽度为正数的棺材(即不满足题目陈述中条件的棺材),则输出 "My poor head =("(不带引号)。
保证:若答案为正数,则其值不小于 10−7。所有 hack 数据也将满足该条件。
输入输出样例
输入#1
2 2 1
输出#1
1.0000000
输入#2
2 2 2
输出#2
2.0000000
输入#3
2 2 3
输出#3
1.3284271
输入#4
2 2 6
输出#4
My poor head =(
说明/提示
In the first example the answer is restricted by the coffin's length (remember — coffin's widths should not be larger than it's length).
In the second example it is possible to drag the coffin through the corridor thanks to rotating wheels: firstly, drag it forward by one side while it will not be hampered by the wall, then move it forward by adjacent side perpendicularly to the initial movement direction (remember — arbitrary moves and rotations of the coffin are possible).
在第一个例子中,答案受限于棺材的长度(注意:棺材的宽度不能大于其长度)。
在第二个例子中,得益于轮子的旋转,可以将棺材拖过走廊:首先沿一侧向前拖动棺材,直至其不被墙壁阻碍;然后,沿与初始运动方向垂直的相邻侧向前移动棺材(注意:棺材可进行任意移动和旋转)。
输入解题思路,AI测评打分。不知道怎么写?