브리지는 매우 복잡한 카드 게임이며, 그중에서도 입찰(bidding)은 특히 익히기 어려운 부분이다. 플레이어마다 서로 다른 입찰 규약(입찰에 부여하는 의미)을 사용하기 때문에 더욱 어렵다. 이 문제에서는 플레이어가 가장 먼저 해야 할 오프닝 입찰을 제안하는 프로그램을 작성한다. 아래의 입찰 규약은 실제 규약을 단순화한 것이다.
브리지 패는 13장의 카드로 이루어진다. 각 카드는 무늬(스페이드, 하트, 다이아몬드, 클럽)와 숫자(A, K, Q, J, T, 9, 8, 7, 6, 5, 4, 3, 2)를 가진다. 여기서 T는 숫자 10을 뜻한다. 입찰하기 전에 플레이어는 패의 하이 카드 포인트(hcp) 개수와 분포(각 무늬에 카드가 몇 장 있는지)를 살핀다. 각 카드가 주는 hcp는 오직 숫자에 의해 결정된다.
| 숫자 | hcp |
|---|---|
| A | 4 |
| K | 3 |
| Q | 2 |
| J | 1 |
| 그 외 | 0 |
예를 들어 다음과 같은 패를 생각하자.
이 패의 hcp는 13이고 분포는 5-5-2-1이다(분포는 보통 내림차순으로 적는다). 균형 분포(balanced distribution)란 4-3-3-3, 4-4-3-2, 5-3-3-2 중 하나를 말한다.
오프닝 입찰은 "Pass"이거나, 레벨(1-7)과 으뜸패(trump suit)의 조합이다. 으뜸패는 높은 순서대로 No Trump, 스페이드, 하트, 다이아몬드, 클럽이다. 패를 평가한 뒤 아래 규칙을 적용해 오프닝 입찰을 정한다. 여러 규칙이 동시에 적용되면 가장 먼저 적용되는 규칙을 사용한다. 분포에서 "x"는 임의의 음이 아닌 정수를 나타내며, 서로 다른 x가 반드시 같을 필요는 없다.
위 예시 패에서는 규칙 9a가 적용되어 1 Hearts를 입찰해야 한다.
입력은 여러 개의 케이스로 이루어진다. 각 케이스는 한 줄에 하나의 브리지 패를 나타내며, 13장의 카드가 공백 하나로 구분된다. 각 카드는 두 글자 문자열로, 첫 글자는 무늬(S, H, D, C), 둘째 글자는 숫자(A, K, Q, J, T, 9, 8, 7, 6, 5, 4, 3, 2)이다. 입력은 파일 끝(EOF)에서 종료된다.
각 패에 대해 Hand #k: 입찰 형식으로 한 줄씩 출력한다. 여기서 k는 1부터 시작하는 패 번호이다. 입찰은 Pass이거나, 레벨 다음에 공백 하나와 무늬 이름(No Trump, Spades, Hearts, Diamonds, Clubs)이 오는 형태이다.