2146 - 쓰르르르륵

Time Limit: 3s Memory Limit: 128MB

Submissions: 233 Solved: 145
Description

책상 모서리에 길이가 모두 같은 카드들을 비스듬하게 쌓아서 카드의 끝을 모서리로부터 얼마나 멀리까지 떨어트려놓을 수 있을까? 카드의 개수가 무한하다면 무한정 멀리 보낼 수 있지 않을까? 아니면 그 한계가 존재할까?

정답은 "무한히 떨어트려놓을 수 있다"이다. 일단 문제를 간단히 하기위해 마찰력따위는 다 갔다버리고 카드의 길이가 1이라고 가정해보자.

 

만약 카드가 1장만 있다면, 책상으로부터 최대 1/2만큼만 떨어트려놓을 수 있을 것이다. 1/2 가 넘어가도록 카드를 놓으면 무게중심이 모서리를 넘어가서 카드가 무너져 내릴 것이기 때문이다. 이제 카드가 2장인 경우에는 어떻게 될까? 1/2 + 1/3 = 5/6 만큼 떨어트려놓을 수 있을 것이다. 마찬가지로, 카드가 n장 있다면 n개의 카드로 만들 수 있는 거리는 1/2 + 1/3 + ... + 1/(n+1) 만큼이다. 이는 조금 생각해보면 이유를 알 수 있다.

 

이제 카드가 쓰러지지 않고 책상 모서리로부터 c 만큼 멀어지게 카드를 쌓고 싶다고 할 때, 필요한 최소의 카드 개수를 구하시오.

Input

입력으로 여러 개의 테스트케이스가 주어질 수 있다. 각 줄마다 카드를 떨어트려놓고 싶은 거리 c가 주어진다. 이 c값은 0.01 보다 크고 5.20 보다 작으며, 항상 3개의 숫자와 1개의 소수점으로 이루어져 있다. c가 0.00이 들어오면 프로그램을 종료한다.

Output

각 테스트케이스마다 카드가 쓰러지지않고 c만큼 멀어지게 만들 수 있는 카드 개수의 최소값을 출력한다. 출력 양식은 sample output을 참조한다.

Sample Input
1.00
3.71
0.04
5.19
0.00
Sample Output
3 card(s)
61 card(s)
1 card(s)
273 card(s)