[BOJ 15488] 나이트가 체스판을 벗어나지 않을 확률
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
3
Time limit:
2.0s
Memory limit:
512M
Problem types
Allowed languages
크기가 N×N인 체스판 위에 나이트가 하나 있다. 나이트가 있는 곳의 좌표가 주어졌을 때, K번 이동한 후에 나이트가 체스판 위에 있을 확률을 구하는 프로그램을 작성하시오.</p>
나이트가 체스판 밖으로 이동하면, 다시 체스판 안으로 들어올 수 없다.
체스판의 가장 윗 행은 1번 행, 가장 아랫 행은 N번 행이고, 가장 왼쪽 열은 1번 열, 가장 오른쪽 열은 N번 열이다. 체스판의 좌표는 (x, y)로 나타내고, x행 y열을 나타낸다.
나이트의 위치가 (x, y)인 경우에, 이동할 수 있는 방법은 (x+1,y+2), (x+2,y+1), (x+2,y-1), (x+1,y-2), (x-1,y-2), (x-2,y-1), (x-2,y+1), (x-1,y+2) 이다.
입력 형식
첫째 줄에 N, 나이트의 좌표 x, y, 이동 횟수 K가 주어진다. (1 ≤ N ≤ 50, 1 ≤ x, y ≤ N, 0 ≤ K ≤ 50)
출력 형식
첫째 줄에 K번 이동한 후 나이트가 체스판 위에 있을 확률을 출력한다. 절대/상대 오차는 10-9까지 허용한다.
예제 입력 1
1 1 1 0
예제 출력 1
1
예제 입력 2
1 1 1 1
예제 출력 2
0
예제 입력 3
1 1 1 2
예제 출력 3
0
예제 입력 4
8 1 1 1
예제 출력 4
0.250
예제 입력 5
8 1 1 2
예제 출력 5
0.18750
예제 입력 6
8 1 1 3
예제 출력 6
0.12500
예제 입력 7
8 1 1 4
예제 출력 7
0.09863281250
예제 입력 8
8 1 1 10
예제 출력 8
0.01739585027098655700683593750
예제 입력 9
50 1 1 50
예제 출력 9
0.009239888029365687257287811147941081
Comments