블랙잭
시간 제한1초메모리 제한256 MB
주어진 카드 순서대로 고정 규칙 블랙잭 게임을 진행하고 각 참가자와 딜러의 승리 횟수를 계산합니다.
문제
블랙잭은 손에 쥔 카드의 합이 21을 넘지 않게 만드는 카드 게임이다. 카지노에서는 돈을 걸지만 여기서는 돈을 걸지 않고 각자의 승수만 센다.
한 벌은 카드 52장이고 13가지 값이 각각 4장씩 들어 있다. 카드 값은 다음과 같다.
- 그림 카드 K, Q, J는 10이다.
- T(10)는 10이다.
- 2부터 9까지는 적힌 숫자 그대로다.
- A(에이스)는 1 또는 11이다.
규칙은 다음과 같다.
- 시나리오마다 입력에 적힌 순서대로 카드를 나눠 주면서 여러 판을 진행한다.
- 한 판을 시작할 때 입력에 적힌 순서대로 참가자에게 카드를 한 장씩 주고, 마지막으로 딜러에게 한 장을 준다. 딜러는 참가자가 아니다. 이어서 같은 순서로 두 번째 카드를 한 장씩 준다.
- 참가자는 차례대로 진행한다. 판단 기준은 항상 손에 쥔 카드 값의 합이다. A는 처음에 11로 세고, 진행 도중 A 하나 이상이 1로 내려갈 수 있다. 한 번 1로 내려간 A는 계속 1이다.
- 자기 차례는 이렇게 진행한다.
- 처음 받은 두 장이 모두 A이면 A 하나를 1로 내려서 합을 22가 아니라 12로 만든다.
- 합이 17 이상이면 멈추고 차례를 끝낸다.
- 합이 17 미만이면 카드를 한 장 더 받는다. 받은 뒤 합이 22 이상이면 버스트로 차례가 끝난다. 다만 아직 11로 세는 A가 남아 있으면 그 A 하나를 1로 내리고 차례를 이어 간다.
- 멈추거나 버스트할 때까지 차례가 이어진다.
- 참가자가 모두 차례를 마친 뒤, 버스트하지 않은 참가자가 한 명이라도 있으면 딜러가 같은 방식으로 진행한다.
- 딜러가 버스트하면 버스트하지 않은 참가자가 각각 1승을 얻는다.
- 딜러가 멈추면 딜러는 멈춘 참가자 중 자기보다 합이 작은 사람마다 1승, 버스트한 참가자마다 1승을 얻는다. 버스트하지 않은 참가자는 합이 딜러보다 크면 1승을 얻는다. 합이 같으면 어느 쪽도 승수를 얻지 않는다.
- 참가자가 모두 버스트해서 딜러가 차례를 진행하지 않으면, 딜러는 참가자 수만큼 승수를 얻는다.
- 카드를 줘야 하는데 한 벌에 남은 카드가 없으면 진행 중이던 판을 그대로 중단하고 점수를 매기지 않는다. 그 시점에 시나리오가 끝나고 각 참가자의 승수를 출력한다.
입력
시나리오가 여러 개 주어진다. 시나리오 하나는 두 줄이다.
첫 줄에는 카드 한 벌 52장의 값이 나눠 줄 순서대로 공백 없이 이어져 있다. 각 문자는 A, 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K 중 하나이고, 값마다 정확히 4장씩 들어 있다.
둘째 줄에는 참가자 이름이 공백 하나로 구분되어 1개 이상 5개 이하 주어진다. 이름에는 공백이 없다.
마지막 줄에는 #만 있다. 이 줄은 처리하지 않는다.
출력
시나리오마다 한 줄을 출력한다. 입력에 나온 순서대로 참가자 이름과 그 참가자의 승수를 쓰고, 마지막에 dealer와 딜러의 승수를 쓴다. 이름과 승수는 공백 하나로 구분한다.