HANGOVER - Hangover


How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length. (We're assuming that the cards must be perpendicular to the table.) With two cards you can make the top card overhang the bottom one by half a card length, and the bottom one overhang the table by a third of a card length, for a total maximum overhang of 1/2 + 1/3 = 5/6 card lengths. In general you can make n cards overhang by 1/2 + 1/3 + 1/4 + ... + 1/(n + 1) card lengths, where the top card overhangs the second by 1/2, the second overhangs tha third by 1/3, the third overhangs the fourth by 1/4, etc., and the bottom card overhangs the table by 1/(n + 1). This is illustrated in the figure below.

Input

The input consists of one or more test cases, followed by a line containing the number 0.00 that signals the end of the input. Each test case is a single line containing a positive floating-point number c whose value is at least 0.01 and at most 5.20; c will contain exactly three digits.

Output

For each test case, output the minimum number of cards necessary to achieve an overhang of at least c card lengths. Use the exact output format shown in the examples.

Input:
1.00
3.71
0.04
5.19
0.00

Output:
3 card(s)
61 card(s)
1 card(s)
273 card(s)

hide comments
Akshat Mathur: 2015-05-25 23:02:05

50th :-)

SangKuan: 2015-05-20 14:51:19

my 50th.easy......

hareesh: 2015-04-20 07:42:27

AC on first go :)

Don't worry about the limits (at least 0.01 and at most 5.20)

ediston: 2015-03-28 23:33:55

Omg why do we have to add card(s) at the end?? :/

Apeksha: 2015-03-26 14:55:32

Yay ! Solved (AC) in first go ! :)

epimenides: 2015-03-10 15:37:25

3 WA because I didn't see the output format. arrg!!

Abhishek Naik: 2015-03-09 06:25:49

I have already got my solution accepted, but I have a doubt. Why is the upper limit given to be 5.20 ('at most 5.20' the text says)? My code works fine for values above 5.20 also. So, why this upper limit?

ruler: 2015-02-28 06:00:17

Sourabh, I think that u r loosing some values when u r multiplying each fraction with 100. Like in case of 1/3*100 = 33.33 converted to 33(integer), u will loose 0.33 and so on u'll loose many values further which would most probably cause an inaccurate answer.

Saurabh Gupta: 2015-02-25 23:38:30

Need a help here:-
Was getting WA - when i was multiplying every input with 100 and typecasting it from double to int, then comparing it with the fraction*100(like (1/2)*100 = 50).
Got AC - Everything was in double and also the comparison was made in double format without multiplying it with 100 or even without typecasting.
Query is what can be the test case where the 1st approach got me WA, coz i'm out of test cases checking the reason for the failure of my 1st approach.

gulbarga master: 2015-02-17 06:47:42

very poorly worded problem statement for a very simple piece


Added by:Wanderley Guimarăes
Date:2006-06-09
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET
Resource:ACM Mid Central Regionals 2001