무늬 분포

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

요약
각 (a, b) 쌍마다 상대편이 가진 한 슈트의 a+b장이 a장과 b장으로 나뉠 확률을 계산한다.
난이도

보통10점 중 4점

유형
조합론, 수학, 확률, 구현
정답자
아직 제출이 없습니다

문제

브리지(bridge)는 네 명이 두 명씩 두 팀으로 나눠 하는 카드 게임으로, 숙련된 플레이어도 따라잡기 어려운 복잡한 규칙이 많다. 다행히 이 문제에서는 그러한 규칙은 전혀 중요하지 않으며, 게임 방법을 몰라도 괜찮다.

중요한 것은, 한 무늬(suit)의 카드가 두 상대방에게 어떻게 나누어져 있는지가 종종 승부를 가른다는 점이다. 예를 들어 나와 내 파트너가 스페이드 무늬 카드를 합쳐 8장 가지고 있다고 하자. 무늬마다 카드는 13장이므로 남은 스페이드 5장은 두 상대방이 나눠 갖며, 그 분포는 0-5, 1-4, 2-3 으로 나타낼 수 있다. 이때 0-5 분포는 두 가지 방식으로 일어난다—상대방 1이 스페이드를 하나도 갖지 않고 상대방 2가 5장을 모두 갖거나, 그 반대이다.

실력 있는 플레이어는 가장 가능성 높은 분포에 맞춰 전략을 고르기 때문에, 각 분포의 확률을 아는 것은 추측해야 할 때 유용하다.

52장의 카드가 네 명의 플레이어에게 각 13장씩 균등하게 무작위로 나누어지며, 당신은 자신의 팀이 가진 26장이 무엇인지 정확히 알고 있다고 가정한다(따라서 두 상대방은 나머지 26장을 갖는다).

입력

입력은 여러 개의 질의로 이루어진다. 각 질의는 두 정수 aa와 bb로 이루어진 한 줄이며, 0≤a,b≤130 \le a, b \le 13이고 a+b≤13a + b \le 13이다. 입력은 a=b=−1a = b = -1인 줄로 끝나며, 이 줄은 처리하지 않는다.

출력

각 질의에 대해 <a>-<b> split: <p> 형식으로 한 줄을 출력한다. 앞의 a와 b는 입력받은 두 수를 그 순서대로 쓴 것이고, p는 소수점 아래 정확히 8자리로 출력한 확률이다.

pp는 상대방이 가진 해당 무늬의 a+ba + b장이, 한 상대방이 aa장을 갖고 다른 상대방이 bb장을 갖도록 나누어질 확률이다. 그 무늬의 나머지 13−(a+b)13 - (a + b)장은 당신과 파트너가 갖는다고 가정한다. a≠ba \ne b일 때는 두 순서(aa-bb와 bb-aa)가 서로 다른 배분이므로 둘 다 이 확률에 포함된다.

예제2

  1. 예제 1

    입력
    2 2
    3 3
    4 2
    -1 -1
    
    예상 출력
    2-2 split: 0.40695652
    3-3 split: 0.35527950
    4-2 split: 0.48447205
    
  2. 예제 2

    입력
    0 5
    1 4
    2 3
    -1 -1
    
    예상 출력
    0-5 split: 0.03913043
    1-4 split: 0.28260870
    2-3 split: 0.67826087