쿠키 농장
면접 대비시간 제한5초메모리 제한512 MB
X개를 가장 빨리 모으기 위해 팜을 몇 개 산 뒤 기다릴지 정하고 최소 시간을 계산합니다.
문제
처음에 가진 쿠키는 0개이고, 거대한 쿠키를 클릭해서 초당 2개씩 얻는다. 쿠키가 개 이상 모이면 언제든지 쿠키 농장을 살 수 있다. 농장을 하나 살 때마다 쿠키 개를 쓰고, 초당 생산량이 개 늘어난다.
농장에 쓰지 않고 남겨 둔 쿠키가 개가 되는 순간 승리한다. 가장 좋은 전략을 썼을 때 승리까지 걸리는 시간을 구하라.
쿠키는 연속적으로 쌓인다. 시작 0.1초 뒤에는 쿠키가 0.2개 있고, 초 뒤에는 개 있다.
, , 일 때 가장 좋은 전략은 다음과 같다.
- 쿠키 0개, 초당 생산량 2개로 시작한다.
- 250초 뒤에 쿠키가 개가 되고, 초당 개를 생산하는 농장을 산다.
- 농장을 사고 나면 쿠키는 0개, 초당 생산량은 6개다.
- 다음 농장도 500개가 필요하고, 약 83.3333333초 뒤에 살 수 있다.
- 두 번째 농장을 사고 나면 쿠키는 0개, 초당 생산량은 10개다.
- 그다음 농장도 500개가 필요하고, 50초 뒤에 살 수 있다.
- 세 번째 농장을 사고 나면 쿠키는 0개, 초당 생산량은 14개다.
- 네 번째 농장도 500개가 필요하지만, 사지 않는 쪽이 낫다. 그대로 기다려 개를 모으면 약 142.8571429초가 걸린다.
걸린 시간은 모두 더해서 초다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다. 이어지는 개의 줄에 각각 실수 , , 가 공백으로 구분되어 주어진다.
, , 는 각각 한 자리 이상의 정수부, 소수점, 한 자리 이상 다섯 자리 이하의 소수부로 이루어진다. 정수부 앞에 0이 붙지 않는다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호이고, 는 쿠키 개를 모으는 데 걸리는 최소 시간(초)이다.
는 소수점 아래 일곱째 자리까지 반올림해서 출력한다. 소수부 자릿수가 모자라면 0으로 채워 항상 일곱 자리를 쓴다.
힌트
농장을 하나 더 사는 것이 이득인지는 지금의 초당 생산량에 달려 있다. 어떤 시점에 농장을 하나 더 사는 것이 손해라면 그 뒤로도 계속 손해이므로, 이득인 동안만 사면 된다.