세트(Set) 게임은 81장의 카드로 진행합니다. 각 카드는 네 가지 특성을 가집니다.
카드를 섞은 뒤 12장을 펼쳐 놓습니다. 참가자들은 펼쳐진 카드에서 세트를 가장 먼저 찾으려고 경쟁합니다. 찾은 세트는 걷어내고 새 카드로 채우며, 카드를 모두 소진할 때까지 계속합니다. 세트를 가장 많이 찾은 사람이 승자입니다.
세트란 세 장의 카드로 이루어진 모임으로, 네 가지 특성 각각에 대해 세 카드의 값이 모두 같거나 모두 다른 경우를 말합니다.
예를 들어 다음 세 카드를 봅시다: 빨강 외곽선 물결무늬 3개, 초록 채움 다이아몬드 3개, 보라 빗금 타원 3개. 특성을 하나씩 살펴보면 기호는 모두 다르고(물결무늬, 다이아몬드, 타원), 개수는 모두 같고(각각 3개), 색은 모두 다르고(빨강, 초록, 보라), 채움도 모두 다릅니다(외곽선, 채움, 빗금). 모든 특성이 모두 같거나 모두 다르므로 이 세 카드는 세트를 이룹니다.
이번에는 세트를 이루지 않는 세 카드를 봅시다: 빨강 채움 다이아몬드 1개, 빨강 채움 타원 2개, 빨강 빗금 물결무늬 3개. 기호는 모두 다르고 개수도 모두 다르며 색은 모두 같습니다(빨강). 그러나 두 카드는 채움이고 한 카드는 빗금이어서, 채움 특성이 모두 같지도 모두 다르지도 않습니다. 따라서 이 세 카드는 세트를 이루지 않습니다.
입력은 여러 개의 카드 펼침(tableau)으로 이루어집니다. 각 펼침의 카드는 한 줄에 하나씩 나열되며, 연속한 펼침 사이에는 빈 줄 하나가 들어갑니다. 입력은 파일의 끝에서 종료됩니다.
각 카드는 정확히 네 개의 대문자로 표기됩니다.
D, O, S.1, 2, 3.R, G, P.O, F, S.각 펼침에 대해, 그 펼침의 카드와 그 안의 모든 세트를 출력합니다.
먼저 CARDS: 다음에 공백 두 칸을 두고, 펼침의 모든 카드를 입력 순서대로 공백 한 칸으로 구분하여 한 줄에 출력합니다.
그다음 세트를 나열합니다. 펼침에서의 위치 기준으로 i < j < k인 모든 카드 삼중쌍 (i, j, k)을 (i, j, k)의 오름차순으로 살펴보며, 세트를 이루는 삼중쌍을 출력합니다. 이 순서대로 세트에 1, 2, 3, … 번호를 매깁니다. 첫 번째 세트는 SETS: 다음에 공백 세 칸을 둔 줄에 출력하고, 나머지 세트는 각각 공백 여덟 칸으로 들여쓴 줄에 출력하여 번호가 세로로 정렬되게 합니다. 각 세트 줄은 1부터 시작하는 번호, 마침표, 공백 두 칸, 그리고 펼침 순서대로 공백 한 칸으로 구분한 세 카드로 이루어집니다.
펼침에 세트가 하나도 없으면 SETS: 다음에 공백 세 칸을 두고 *** None Found ***을 출력합니다.
연속한 펼침 사이에는 빈 줄 하나를 둡니다. 정확한 형식은 다음과 같습니다.
CARDS: <card> <card> ... <card>
SETS: 1. <card> <card> <card>
2. <card> <card> <card>