20004. 登高望遠

I'm a slow walker, but I never walk backwards.

Task Description

『白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 』《登鸛雀樓》(王之渙)

在唐朝,若是想要看向更遠的地方通常只需要再往上一層樓,當然也與觀測者的視力以及所在的高度有關。
然而,經過了千年以後的現在,因為大樓林立、空氣汙染的關係,往上一層樓仍然甚麼都看不見,也許需要多爬幾樓才能看見更遠的地方。

假設任何地方海拔高度都為0,且觀測方向被一棟建築物所阻擋,能不能看得更遠與

  1. 觀測者直線視力極限: vision
  2. 所在樓層數: floor
  3. 一層樓的高度: height (固定為5)
  4. 障礙物高度: obstacle
  5. 觀測者與障礙物的水平距離: distance

以上五個數值有關(觀測者所處建築物與障礙物的寬度忽略不計),若視線越過障礙物後能看到後方平地且
距離(length) <= 觀測者視力極限(vision)則表示能看得更遠,否則無法。

請你計算出觀測者至少要上幾層樓才能看到障礙物後方的平地。(層數無上限)

Hint

1
2
#include <math.h>
斜邊長(length) = sqrt(horizontal*horizontal(水平距離^2) + vertical*vertical(所處高度^2));

Input Format
輸入共有4個數值,依序為vision、floor、obstacle、distance。
( 100 <= vision <= 10000、0 <= floor <= 100、5*floor <= obstacle <= 1000、50 <= distance <= 1000)

Output Format

輸出一整數代表觀測者至少必須爬幾層樓,若是為了越過障礙物爬得太高因此距離平地太遠而看不見則輸出unable。

1
printf("unable\n");


Sample Input

1
2000 50 500 100

Sample Output

1
56


Submit

Login

Testdata Set

Download Testdata