다트

시간 제한1초메모리 제한128 MB

요약
다트 501 게임에서 무작위로 던지는 A와 최적 구역을 선택하는 B의 선공 승리 확률을 점수별로 계산합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 확률, 시뮬레이션, 수학
정답자
아직 제출이 없습니다

문제

매주 금요일 저녁, 빌과 친구들은 작은 술집에 모여 맥주를 몇 잔 마시며 다트를 던진다. 이들은 자신의 다트 실력이 잔에 남은 맥주가 줄어드는 속도만큼 나빠진다는 사실을 잘 알고 있다.

이들은 항상 가장 간단한 다트 게임 중 하나인 501을 한다. 각 플레이어는 NN점(보통 N=501N = 501이며, 게임 이름은 여기서 유래한다)에서 시작해 번갈아 가며 다트를 한 번씩 던진다. 던질 때마다 다트가 맞힌 구역의 값만큼 점수가 줄어드는데, 점수가 음수가 되는 경우에는 점수를 그대로 둔다. 점수를 정확히 00으로 먼저 만드는 플레이어가 이긴다.

다트판. 다트판은 2020개의 구역으로 나뉜다. 시계 방향으로 읽으면 각 구역의 값은 다음과 같다.

20, 1, 18, 4, 13, 6, 10, 15, 2, 17, 3, 19, 7, 16, 8, 11, 14, 9, 12, 520,\ 1,\ 18,\ 4,\ 13,\ 6,\ 10,\ 15,\ 2,\ 17,\ 3,\ 19,\ 7,\ 16,\ 8,\ 11,\ 14,\ 9,\ 12,\ 5

다트판은 원형이므로 마지막 구역(값 55)은 첫 번째 구역(값 2020)과 맞닿아 있다. 이 시계 방향 순서에서 서로 이웃한 두 구역을 인접하다고 한다.

두 플레이어 A와 B는 서로 다른 전략을 쓴다.

  • 플레이어 A는 아무렇게나 던진다. 다트는 2020개의 구역 각각에 120\frac{1}{20}의 같은 확률로 꽂힌다.
  • 플레이어 B는 한 구역을 겨냥한다. 맥주 때문에 다트는 겨냥한 구역이나 그 양옆으로 인접한 두 구역 중 하나에 같은 확률로 꽂히며, 이 세 구역 각각의 확률은 13\frac{1}{3}이다. B는 이 사실을 완벽히 알고 있어 항상 이길 확률이 가장 높아지는 구역을 겨냥한다.

두 플레이어는 같은 점수 NN에서 시작한다. 먼저 던지는 쪽이 유리할 수 있으므로, 이기는 확률은 누가 먼저 던지느냐에 따라 달라진다.

입력

입력은 여러 줄로 이루어진다. 각 줄에는 두 플레이어가 공통으로 시작하는 점수인 정수 NN (1≤N≤5011 \le N \le 501)이 하나씩 주어진다. N=0N = 0인 줄은 입력의 끝을 뜻하며 처리해서는 안 된다.

출력

각 점수 NN마다 두 수를 공백 하나로 구분해 한 줄에 출력한다.

  • A가 먼저 던질 때 A가 이길 확률
  • B가 먼저 던질 때 B가 이길 확률

각 확률을 소수점 아래 정확히 66자리로 반올림해 출력한다(예: 0.136364). 출력은 정확히 일치하는지 검사하므로 이 형식을 그대로 지켜야 한다.

예제3

  1. 예제 1

    입력
    5
    100
    0
    
    예상 출력
    0.136364 0.909091
    0.072505 0.950215
    
  2. 예제 2

    입력
    1
    0
    
    예상 출력
    0.136364 0.909091
    
  3. 예제 3

    입력
    501
    0
    
    예상 출력
    0.004969 0.996644