카드 카운팅 클럽
시간 제한8초메모리 제한1024 MB
각 플레이어의 카드 손패와 벌점 P가 주어질 때, 카드를 모두 잃고 탈락하는 플레이어의 순서를 출력합니다.
문제
카드 카운팅 클럽은 카드 카운팅 연습과 게임 순서 정하기를 한 번에 하고 싶었다. 그래서 다음과 같은 탈락 게임을 하기로 했다.
- 게임을 시작할 때 각 플레이어에게 같은 개수의 카드를 나눠 준다.
- 각 턴의 처음에 모든 플레이어는 자기 손패에서 가장 작은 값의 카드를 다른 플레이어에게 보여준다.
- 가장 작은 카드를 가진 플레이어가 그 카드를 버린다.
- 카드를 버리는 플레이어는 한 명뿐이다. 동점이면 이름이 사전순(lexicographic order)으로 앞서는 플레이어가 버린다.
- 버리지 못한 플레이어는 카드에 작은 표시를 남기고 그 카드를 다시 손패에 넣는다. 표시가 하나 생길 때마다 카드 값은 정해진 벌점 P만큼 올라간다.
- 손패의 카드를 모두 잃은 플레이어는 탈락한다.
- 모든 플레이어가 탈락할 때까지 게임을 진행한다.
탈락한 순서는 클럽 회원들이 다른 게임을 할 때의 순서가 된다.
입력
첫 줄에 정수 , , 가 공백으로 구분되어 주어진다 (, , ). 은 플레이어 수, 은 각 플레이어의 손패 크기, 는 표시 하나당 더해지는 벌점이다.
이어지는 개의 줄에는 플레이어 이름과, 그 플레이어 손패의 카드 값 개 ()이 공백으로 구분되어 주어진다. 카드 값은 한 손패 안에서도, 손패끼리도 중복될 수 있다. 이름은 대문자로만 이루어지며 길이는 2 이상 10 이하다.
출력
한 줄에 게임에서 탈락한 순서대로 플레이어 이름을 출력한다. 연속한 이름은 공백 한 칸으로 구분한다.