Logo
(追記) (追記ここまで)

28460번 - Card Game

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB60614112.007%

문제

과거로부터 오랫동안 전승돼 온 전통 놀이인 ”마이티”를 아는가? 민규는 고등학교 때 마이티 게임을 하면서 놀곤 했다. 하지만 대학에 입학하고 바쁜 나날을 보내다 보니 어느새 우리들이 마이티를 잊고 살아가고 있다는 것을 발견했다.

대대로 전승돼 온 전통 놀이인 마이티를 잊는다니 있을 수 없는 일이다. 그래서 민규는 설날에 가족들과 마이티 게임을 하려고 했지만, 아뿔싸. 그 간단한 마이티의 규칙을 잊어버린 것이 아니겠는가? 그래서 민규는 당신에게 도움을 요청하였다. 5명의 플레이어가 처음에 받은 카드들과 게임 과정에서 내려놓은 모든 카드가 규칙에 맞춰 주어진다. 대통령 팀이 승리하는지 패배하는지 민규에게 알려주는 프로그램을 만들어 보자.

게임의 규칙은 아래와 같다. 마이티는 전통 놀이인 만큼 지역별로 다양한 변형된 규칙이 있지만, 아래에 설명된 것을 기준으로 한다.

  • 규칙 0. 게임 개요 마이티 게임은 5명의 플레이어로 진행하며 대통령 측(여당)과 야당이 대결하는 게임이다. 게임은 흑백 조커와 컬러 조커를 포함하여 54장의 일반적인 트럼프 카드 세트를 사용하여 진행한다. 컬러 조커와 흑백 조커를 제외한 52장의 카드는 스페이드, 클로버, 하트, 다이아 문양으로 나누어지고, 문양마다 1(에이스), 2, 3, 4, ..., 10, J(잭), Q(퀸), K(킹)이 존재한다. 편의를 위해 J(잭)은 11, Q(퀸)은 12, K(킹)은 13에 대응하여 조커를 제외한 모든 카드에 수를 대응시켰다. 이 52장의 카드를 '수 카드'라고 하자. 수 카드에 대해 스페이드와 클로버는 흑백 조커와 색이 같고, 하트와 다이아는 컬러 조커와 색이 같다. 수 카드 중에서 문양별로 10, J(잭), Q(퀸), K(킹), 1(에이스)를 특별히 ”점수 카드”라고 한다. 문양별로 5장의 카드가 점수 카드이므로 게임에는 총 20장의 점수 카드가 존재한다. 이 게임엔 두 개의 진영 "여당""야당"이 존재한다. 게임의 진행 동안 10번의 라운드를 거치며, 각 라운드에서 가장 강한 카드를 낸 플레이어가 라운드에 놓인 점수 카드의 수만큼 점수를 얻는다. 이 게임의 이름이기도 한 마이티는 라운드의 가장 강한 카드를 고르는 경쟁에서 항상 승리하는, 즉 가장 강한 카드를 부르는 명칭이다. 가장 강한 카드를 고르는 과정은 이후에 설명한다. 이렇게 10번의 라운드를 진행하며 여당과 야당이 점수 카드를 획득하여 나눠 가진다. 게임이 종료되었을 때 여당 측이 처음에 제시한 공약 이상으로 점수 카드를 많이 획득하면 여당의 승리이며, 그렇지 않다면 야당이 승리하는 게임이다.
  • 규칙 1. 게임 시작 1번 플레이어부터 5번 플레이어까지 순서대로 시계 방향으로 둘러앉고 게임을 시작한다. 이후 5명의 플레이어가 카드를 10장씩 나누어 가진다. 남겨진 4장의 카드는 ”선거” 이후 당선된 대통령이 가져간다.
    • 규칙 1.1 딜 미스 플레이어가 나누어 가진 처음 10장의 카드가 너무 불공정하게 분배된 경우 딜 미스를 선언하고 카드를 다시 분배한다. 각자의 패에서 스페이드 A에 가중치 -1, 이외의 점수 카드에 가중치 +1, 조커에 가중치 -0.5를 부여하였을 때 플레이어 패의 가중치 합이 1 이하이면 딜 미스에 해당한다. 딜 미스인 플레이어가 한 명이라도 있다면, 게임 전체가 무효가 된다.
    • 규칙 1.2 선거 선거에 출마할 플레이어들은 공약을 제시한다. 본 문제에서는 최소한 한 명 이상의 플레이어가 선거에 출마함이 보장된다. 공약은 게임이 마무리될 때까지 획득할 점수 카드의 수카드 문양으로 이루어진다. 이때 공약으로 설정된 카드 문양은 훗날 기루다라는 특별한 문양이 되는데, 이는 이후에 설명한다. 만약 대통령이 공약으로 카드 14장을 획득하겠다고 걸었다면, 게임이 끝나기 전까지 최소한 점수 카드를 14장 이상 획득해야 이길 수 있다. 공약으로 정할 획득할 점수 카드의 수는 13장 이상이어야 한다(너무 쉬운 공약을 막기 위해서). 여러 명의 출마자가 경쟁할 경우, 획득할 점수 카드 공약이 높은 플레이어가 대통령이 되며, 획득할 점수 카드 공약이 같은 플레이어가 있다면 공약의 카드 문양이 스페이드>다이아>하트>클로버 순서로 높은 문양의 공약을 건 플레이어가 대통령이 된다. 만약 카드 문양, 획득할 점수 카드의 숫자까지 같다면 플레이어 번호가 낮은 사람이 대통령이 된다.
    • 규칙 1.3 기루다 대통령이 정해졌다면, 해당 대통령이 공약에서 제시했던 카드 문양은 ”기루다”가 된다. 기루다란 게임에서 가장 강한 문양을 의미한다. 카드의 강함 관계(순서)는 규칙 3에서 설명한다.
    • 규칙 1.4 카드 교환 대통령이 정해지면 분배되고 남은 4장의 카드를 대통령이 가져간다. 카드를 가져간 뒤, 라운드 진행에서 사용하지 않을 4장의 카드를 골라 바닥에 내려놓고 10장의 카드만 남긴 채로 게임을 시작한다. 바닥에 내려놓은 4장의 카드는 라운드 진행에 사용하지 않을 뿐, 대통령 소유의 카드이다. 만약 내려놓은 4장의 카드 중에 점수 카드가 있다면 그 수만큼 대통령의 최종 점수에 더해진다.
    • 규칙 1.5 프렌드 대통령은 카드 하나를 지정하여 해당 카드를 소유하고 있는 사람을 프렌드로 지정할 수 있다. 보통 가장 강력한 카드인 ”마이티”를 소유한 사람을 프렌드로 지정하지만, 어떠한 카드도 가능하다. 프렌드가 된 플레이어는 여당에 소속되어 해당 플레이어가 얻은 점수도 여당의 점수에 더해진다. 대통령과 프렌드가 아닌 사람은 야당에 속한다. 즉 이 게임은 일반적으로 여당이 2명, 야당이 3명인 채로 경쟁하는 게임이다. 모든 플레이어는 자신의 카드 외에는 해당 카드를 들고 있는 사람이 누구인지 모르기에 게임을 시작할 때 프렌드가 누구인지는 프렌드 자신을 제외하고 아무도 모른다. (주의: 규칙 5.5에 따라 야당 1명, 여당 4명인 경우도 가능함)
  • 규칙 2. 라운드 진행 규칙 마이티 게임은 10번의 라운드로 구성된다. 각 라운드는 시계방향으로 카드를 한 장씩 내면서 진행된다. 즉, 3번 플레이어부터 시작일 때, 3->4->5->1->2 번 플레이어 순서로 카드를 한 장씩 낸다. 첫 라운드는 대통령부터 시작한다. 이때, 카드를 처음 낸 사람의 문양을 '허용된 문양'이라고 하며, 이후 4명의 플레이어는 허용된 문양의 카드만을 내야 한다. 만약 해당 문양의 카드를 가지고 있지 않다면 아무 문양의 카드나 내도 된다. 마이티와 조커는 어떠한 상황에서도 낼 수 있는 카드이다. 다만 조커 총의 경우엔 해당하는 조커를 강제로 내야 한다 (규칙 4 참고). 5명의 플레이어가 카드를 한 장씩 순서대로 내면 라운드가 종료되고 가장 ”강한” 카드를 낸 플레이어가 5장의 카드들에 포함된 점수 카드의 수만큼 점수를 얻는다. 한번 사용된 5장의 카드는 다시 쓰이지 않는다. 다음 라운드는 이전 라운드의 경쟁에서 가장 강한 카드를 낸 플레이어부터 시계방향으로 진행한다.
  • 규칙 3. 카드의 강함 순서 카드의 순서는 라운드마다 가장 강한 카드를 가려내는 데에만 이용된다. 게임의 제목이기도 한 ”마이티” 카드는 스페이드 A 카드를 뜻하며, 다른 어떠한 카드보다 강하다. 카드의 강한 순서는 7개의 클래스로 나눠진다. 아래 규칙으로 어떤 경우에도 라운드의 5개 카드 중에서 가장 강한 카드를 유일하게 정할 수 있음이 보장되지만, 후순위 카드들에 대해서는 순서가 정의되지 않을 수 있다. 또한 한 카드가 여러 클래스에 속한다면 가장 강한 클래스에 포함 강함을 고려한다. 마이티 > 기루다와 같은 색깔 조커 카드 > 기루다 문양의 카드 > 기루다와 다른 색 조커 카드 > 그 라운드에서 허용된 문양(일반적으로 첫 번째 카드의 문양)을 가진 카드 > 이외 카드들 > 효력이 없어진 조커 카드 같은 클래스에 속한 카드에서는 1(에이스)가 가장 높으며, 그 외 나머지 카드는 높은 수의 카드일수록 강하다. 정리하면 1(에이스) > K(13) > Q(12) > J(11) > 10 > 9 > 8 > 7 > ... > 3 > 2 이 수 카드 사이의 강함 순서이다. 만약 같은 클래스에 속한 두 카드의 수가 같다면, 문양의 강함을 따른다. 규칙 5.6에 의해 첫 라운드의 카드가 조커라면 라운드에서 허용된 문양이 두 개일 수 있다.
  • 규칙 4. 조커 총 클로버 3과 하트 3은 조커를 무력화시킬 수 있으며 ”조커 총”이라고 부른다. 라운드의 첫 카드가 조커 총인 경우 조커 총과 같은 색상의 조커를 소유하고 있는 사람은 강제로 내야 하며 해당 조커는 효력이 없어진다. 예시를 들자면, 첫 사람이 클로버 3을 낸다면 흑백 조커를 들고 있는 사람은 강제로 그 카드를 내야 한다. 만약 해당 조커를 들고 있는 사람이 아무도 없거나, 조커 총을 낸 사람이 조커를 가지고 있는 경우에는 아무 일도 일어나지 않는다. 조커 총을 당했을 때, 해당 조커를 가지고 있지만 내지 않을 수 있는 유일한 방법은 마이티를 대신 내는 경우뿐이다.
  • 규칙 5. 예외 조건
    • 규칙 5.1 특정 라운드에 적용되는 예외들 첫 라운드의 대통령은 기루다 카드를 낼 수 없다. 다만 대통령의 모든 카드가 기루다인 경우는 예외로 기루다를 낼 수 있으며 기루다의 효력 또한 유지된다. 규칙에 의해 대통령의 카드 9장이 기루다이고 한 장이 마이티면 반드시 마이티를 내야 한다. 또한 첫 라운드와 마지막 라운드에는 조커가 효력이 없다 (강함 경쟁에서 마지막 순서이다). 효력을 잃은 조커라도 문양은 강제해야 한다.
    • 규칙 5.2 기루다가 스페이드인 경우 기루다가 스페이드인 경우 해당 게임에서 마이티는 스페이드 A에서 다이아몬드 A로 바뀐다. 즉, 기루다와 마이티가 같은 문양인 경우는 없다.
    • 규칙 5.3 기루다가 하트 or 클로버인 경우 조커 총은 기루다와 같은 문양이 될 수 없다. 기루다가 하트면 하트3 대신 다이아3이 조커 총이고, 기루다가 클로버면 클로버3 대신 스페이드3이 조커 총이 된다.
    • 규칙 5.4 no-기루다 규칙 대통령 선거를 진행할 때 플레이어가 기루다를 정하지 않고 획득할 점수 카드의 수만 공약으로 걸고 출마할 수 있다. 이를 no-기루다 공약이라고 한다. no-기루다 공약은 획득할 카드 수에 1을 더하여 다른 공약과 경쟁하며 최소 공약 또한 12이다. 그리고 같은 숫자 경쟁 규칙에서도 가장 우선순위에 있다. 만약 no-기루다 공약의 대통령이 당선될 경우, 카드의 강한 순서는 5개 클래스로 나뉜다. 마이티 > 라운드의 첫 카드와 같은 색상의 조커 카드 > 허용된 문양의 카드 > 라운드의 첫 카드와 다른 색상의 조커 카드 > 이외 카드들 > 효력이 없어진 조커 카드 위 경우에도 라운드에 놓인 5개의 카드의 가능한 모든 쌍 간의 순서가 명확히 정의되지 않을 수 있지만, 라운드의 가장 강한 카드는 유일하게 하나로 결정됨이 보장된다.
    • 규칙 5.5 프렌드가 없는 경우 대통령이 프렌드로 지정한 카드가 대통령 자신이 보유한 카드인 경우 별도의 프렌드 없이 여당은 대통령 혼자가 된다. 따라서 대통령 혼자 공약을 달성해야 여당이 승리할 수 있다.
    • 규칙 5.6 라운드의 첫 카드가 조커인 경우 원래 라운드의 첫 카드로 그 라운드의 허용된 문양이 결정된다. 하지만 첫 라운드의 카드가 조커인 경우에는 조커를 내면서 허용된 문양을 선택해야 한다. 선택할 수 있는 허용된 문양은 그 조커와 동일한 색상의 문양만 가능하다. 컬러 조커의 경우엔 다이아/하트, 흑백 조커의 경우엔 스페이드/클로버가 가능하다. 또한 동일한 색상의 두 문양 모두 허용하는 것도 가능하다. 즉, 흑백 조커를 내면서 클로버와 스페이드를 모두 허용하도록 선택할 수 있다. 다만 아무 문양도 허용하지 않는 것은 불가능하다.

입력

입력으로 주어지는 모든 카드는 글자 두 개로 표현된다. 컬러 조커는 JC, 흑백 조커는 JB이며 이외의 숫자 카드는 문양+숫자로 표현된다. 스페이드는 S, 다이아몬드는 D, 하트는 H, 클로버는 C이다. 문양별로 잭은 J, 퀸은 Q, 킹은 K이다. 예외로 숫자 1(ACE)는 1이 아닌 A로 불린다. 다음 예시를 참고하자. 클로버 3 = C3, 스페이드 A(일반적으로 마이티) = SA, 하트 킹=HK, 클로버 1=CA.

처음 5개의 줄에는 각 플레이어가 분배받은 카드가 입력으로 주어진다. i번째 줄에는 i번째 플레이어가 받은 카드가 공백을 사이에 두고 주어진다. 입력에 나타나지 않은 카드 4장이 남은 카드가 된다.

6번째 줄에는 첫 번째 플레이어부터 공백을 사이에 두고 순서대로 공약이 주어진다. 공약은 기루다 문양 + 카드 획득 목표로 구성된 단어이다. 문양은 동일하게 S, D, H, C로 표현되며 no-기루다 공약인 경우 문양이 X로 대체된다. 예시로 ”하트 13”은 H13으로 표현된다. 만약 선거에 출마하지 않은 경우 그 플레이어의 공약은 N이다. 공약은 유효한 공약만이 주어짐이 보장된다. H12, CO2와 같은 유효하지 않은 공약은 주어지지 않는다. 카드 획득 목표는 12 이상 20 이하의 정수이다.

7번째 줄에는 대통령이 라운드 시작 전에 내려놓은 카드 4장이 공백을 사이에 두고 주어진다.

8번째 줄에는 대통령이 프렌드의 카드로 지정한 카드가 입력된다.

9번째 줄부터 10개의 줄에는 각 라운드에서 규칙에 따라 5명의 플레이어가 순서대로 낸 카드가 공백을 사이에 두고 주어진다. 총 다섯 장의 카드가 주어지며, 순서대로 첫 번째 카드는 1번 플레이어가 낸 카드이며 마지막 카드는 5번 플레이어가 낸 카드이다. 해당 라운드가 어느 플레이어부터 시작했는지는 주어지지 않고, 이전의 경기 기록으로부터 계산해야 한다. 컬러 조커와 흑백 조커는 동일하게 JC/JB로 입력이 주어지지만, 규칙 5.6으로 인해 라운드의 첫 카드가 조커인 경우에는 다르게 입력된다.

다이아를 내도록 강제한 컬러 조커는 JD, 하트를 내도록 강제한 컬러 조커는 JH, 다이아 or 하트를 내도록 강제한 컬러 조커는 JDH로 주어진다. 스페이드를 내도록 강제한 흑백 조커는 JS, 클로버를 내도록 강제한 흑백 조커는 JC, 스페이드/클로버를 내도록 강제한 흑백 조커는 JSC로 주어진다. 라운드의 첫 카드가 조커인 경우엔 JD, JH, JDH, JS, JC, JSC 중의 하나로 입력이 주어짐이 보장된다.

입력으로 주어지는 카드들은 위에서 설명한 종류 중 하나이며, XJ와 같이 위의 범주에 들어가지 않는 카드는 입력되지 않음을 보장한다. 또한, JSC와 같이 조커를 첫 라운드에 사용할 때만 나올 수 있는 입력은 라운드의 첫 입력에 해당하는 경우에만 입력으로 주어짐이 보장된다.

출력

출력은 한 줄로 이루어진다. 만약 초반에 분배된 카드가 불공정하게 분배되어 딜 미스를 선언해야 한다면 Deal Mistake를 출력한다. 문제에서 보장한 사항이 아니라면 모든 예외가 가능하며 (카드 중복, 규칙을 위반한 플레이어 등) 이러한 경우엔 Rule Violation을 출력한다. 만약 Rule Violation이 덱 배분(입력의 첫 5줄)에서 일어났다면 Rule Violation을 출력하고, 만약 그 이후에서 룰 위반이 발생한 경우 Deal Mistake가 우선된다. 즉, 딜 미스된 덱이 입력된 뒤에 룰 위반이 일어나도 출력은 Deal Mistake가 되어야 한다.

위의 두 경우에 해당하지 않고 정상적으로 게임이 진행되어 종료된 경우에는 승리한 팀과 여당이 획득한 점수에서 공약을 뺀 값을 공백으로 구분하여 출력한다. 여당이 승리할 시 Government Party를 출력하고, 야당이 승리할 시 Opposition Party를 출력한다.

제한

예제 입력 1

DK H3 C10 H6 DJ C8 C2 D6 C9 D9
S8 DQ CJ H4 JC SJ S4 D3 HK C3
CQ HQ SQ H2 D7 S10 DA SK D4 C5
D10 S3 CK S5 C4 H9 D5 D2 JB S9
H5 HJ H8 D8 S7 H7 S2 HA CA SA
H13 N H15 H14 N
SK DA D4 H10
SA
C8 CJ C7 C4 CA
H6 JC HQ H9 H8
H3 H4 H2 D10 HJ
C2 HK C6 D5 HA
DK SJ SQ S3 S2
C10 C3 C5 CK H5
C9 S4 CQ D2 H7
DJ DQ D7 JB D8
D9 S8 S6 S5 S7
D6 D3 S10 S9 SA

예제 출력 1

2 Government Party

여당(Rulling Party)가 17점, 야당이 3점을 획득하였다. 여당의 공약은 H15였는데, 여당이 17점을 획득했으므로 여당의 승리이다.

예제 입력 2

S6 C4 DK C10 C7 SJ H7 S4 C3 S7
C9 C6 CK C5 H5 DJ H3 D10 S9 D2
D8 D6 S5 H8 HQ H4 S3 D4 SQ DQ
D3 H9 D9 JB S8 H2 HJ S10 SK S2
HA D5 C2 H6 C8 CA JC D7 H10 HK
N X13 N N S14
H3 C5 H5 DJ
H3
C10 CK H8 D9 C8
DK D2 D8 D3 JC
C3 C9 DQ S8 CA
H7 DA HQ HJ HK
SJ S9 H4 JB H6
S4 C6 S5 H9 H10
C7 CQ D4 H2 C2
C4 CJ S3 S10 D5
S7 SA SQ SK D7
S6 D10 D6 S2 HA

예제 출력 2

-2 Opposition Party

여당은 11점, 야당은 9점을 획득하였다. 그러나 여당의 공약이었던 카드 13장에는 미치지 못했으므로 야당이 승리한다.

예제 입력 3

H4 SK H7 D8 JB H10 JC H2 C4 H9
HK DA D4 C7 C6 S8 S10 C8 DQ SA
D10 D7 D5 HJ S5 SJ D2 S4 C5 H8
H6 HA S6 C3 CA HQ S2 D6 CQ C10
C9 D3 S3 S9 DK DJ SQ H3 D9 H5
N C14 N N S14
D3 H3 S3 C2
D8
D8 D4 D5 D6 D9
SK S8 S4 S6 S7
H7 HK HJ H6 H5
H9 SA S5 S2 S9
C4 C6 C5 CQ C9
H10 C8 D7 C10 CJ
JB S10 SJ HQ SQ
H2 DA H8 HA CK
JC DQ D2 C3 DK
H4 C7 D10 CA DJ

예제 출력 3

Deal Mistake

힌트

  • 규칙 5.3 보충 설명 기루다가 하트라면 조커 총은 클로버 3과 다이아몬드 3이며, 기루다가 클로버라면 조커 총은 스페이드 3과 하트 3이 된다.
  • 규칙 5.4 보충 설명 no-기루다 12과 클로버 13 공약이 경쟁한다면 no-기루다 12 공약이 대통령으로 당선된다
  • 규칙 2의 마이티와 조커 보충 설명 만약 라운드의 첫 카드가 클로버5라면 클로버가 있는 경우 반드시 클로버 카드를 내야 한다. 하지만 마이티나 조커가 있다면 대신 낼 수 있다. 조커 총으로 인해 반드시 조커를 내야 하는 경우에도 마이티를 대신 낼 수 있다. 라운드의 첫 카드가 스페이드이고, 내가 가진 카드가 마이티밖에 없어도 조커를 대신 낼 수 있다.

출처

Contest > BOJ User Contest > 유틸컵 > 제1회 유틸컵 - Chapter 1 H번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /