오치코
시간 제한2초메모리 제한1024 MB
각 플레이어의 카드 문자열을 읽고, 에이스를 1 또는 11로 계산해 21 이하에서 가장 높은 점수를 얻은 플레이어 번호를 구합니다.
문제
바이타자르는 오치코 토너먼트를 운영한다. 오치코는 카드를 뽑아 점수를 모으는 카드 게임이다. 플레이어의 점수는 가진 카드 값의 합이다. 2부터 9까지의 카드는 적힌 숫자만큼 점수를 얻고, 10, J, Q, K는 각각 10점이다. A는 1점 또는 11점 중 플레이어에게 유리한 값으로 계산한다. 21점을 넘는 플레이어는 진다. 21점 이하에서 가장 높은 점수를 얻은 플레이어가 이긴다. 최고 점수가 같은 플레이어가 여럿이면 그들 모두 이긴다. 카드는 이미 나누어졌고 모든 플레이어가 손에 든 카드를 공개했지만, 누가 이겼는지에는 합의가 없다. 이긴 플레이어들의 집합을 구하는 프로그램을 작성하라.
입력
첫 줄에 플레이어 수를 나타내는 자연수 N이 주어진다 (1 이상 20 이하). 다음 N줄에는 각 플레이어가 가진 카드를 나타내는 비어 있지 않은 문자열이 한 줄씩 주어진다. 문자열은 23456789TJQKA의 문자로 이루어진다. 플레이어는 입력에 나타나는 순서대로 1부터 N까지 번호가 매겨진다. 각 문자열의 길이는 10을 넘지 않는다. 바이타자르의 덱은 특별해서, 각 문자가 몇 번이든 반복해서 나타날 수 있다.
출력
첫 줄에 이긴 플레이어의 수 R을 출력한다. 둘째 줄(마지막 줄)에는 이긴 플레이어의 번호를 오름차순으로 공백 한 칸씩 구분해 출력한다.