View problem - 맛있는 과자 (kriii3_A)

Time limitMemory limit# of submissions# of submitted usersSolved #Accepted user ratio
1000 ms512 MiB70262180.77%

엘리가 좋아하는 과자는 직각삼각형 모양이고, 빗변을 제외한 다른 두 변의 길이가 각각 $a$와 $b$이다. 어느 날 엘리는 이 과자를 많이 많이 먹을 수 있는 방법을 떠올리고 자신의 천재성에 전율했다.

엘리는 빗변의 양 끝점이 아닌 점에서 빗변으로 과자를 자르면 직각삼각형 두 개를 만들 수 있다는 것을 알았다! 사실 이렇게 잘라봐야 과자의 총 면적은 같지만, 어린 엘리는 과자가 두 개가 되었다는 사실이 너무 행복했고 이런 방법을 떠올린 자신이 너무 기특했다. 그리고 또 생각했다. 직각삼각형 모양 과자가 두 개가 되었으니까 이 두 개를 아까처럼 자르면 직각삼각형 모양 과자가 네 개… 여덟 개… $2^{N}$개! 즉 엘리가 하나의 직각삼각형 모양 과자를 가지고 시작해서 자신이 가진 모든 과자를 잘라 과자의 개수를 두 배로 불리는 것을 $N$번 반복하면 엘리가 가진 직각삼각형 모양 과자의 개수는 $2^{N}$개가 되는 것이다! 이렇게 자르는 것은 엘리가 가진 놀라운 힘을 이용하면 간단한 것이었고, 엘리는 이미 이런 식으로 과자들을 자르는 행위를 $N$번 반복해 $2^{N}$개의 조각을 가지고 있다.

엘리는 이 과자들을 모두 먹고 싶었지만 모두 먹기에는 너무 조각이 많다고 생각해서 $2^{N}$개의 조각들 중 크기(=면적)가 $K$번째로 큰 한 조각은 바보 피터에게 주기로 했다. 피터가 받게 될 과자의 면적이 얼마지 구하는 프로그램을 작성하라.

입력

첫 번째 줄에 네 개의 자연수 $a$, $b$, $N$, $K$ ($1 \le a, b \le 100$, $1 \le N \le 40$, $1 \le K \le 2^{N}$)이 공백을 사이로 두고 주어진다.

출력

첫 번째 줄에 피터가 받게 될 과자의 크기(=면적)를 출력한다. 다만 이 값이 너무 작을 수 있으므로, 면적에 자연 로그()을 취한 값을 출력한다. (즉 면적이 $S$라면, 의 값을 출력해야 한다.) math.h 또는 cmath 헤더에 있는 log 함수(레퍼런스)가 자연 로그를 계산하는 함수이다.

출제진이 의도한 정답과의 절대 오차 또는 상대 오차가 $10^{ - 8}$ 이하이면 올바른 답안으로 인정한다. 비교는 여러분이 출력한 값, 즉 면적에 자연로그를 취한 값을 기준으로 이루어진다.

부분문제

부분문제 점수 N
1 10 ≤ 10
2 23 ≤ 40

입출력 예제

예제 1

입력

3 4 1 1

출력

1.345472366600

예제 2

입력

3 4 1 2

출력

0.770108221696

예제 3

입력

1 1 40 1

출력

-28.419034402958