TV 프로그램 "90%"는 매주 생방송으로 SMS 여론조사를 진행한다. 한 번의 조사는 질문 하나와 1번부터 k번까지 번호를 붙인 선택지 k개로 이루어진다. 시청자는 프로그램 전화번호로 1 이상 k 이하의 번호를 SMS로 보내 투표하고, 집계 결과는 방송 중에 바로 공개된다.
의회는 지난주 방송에서 발표된 통계를 의심해 조사 위원회를 꾸렸다. 위원회는 마지막 방송에 도착한 SMS 전체 목록을 확보했고, 이 자료를 분석하려 한다. 조사 대상인 여론조사의 선택지는 네 개다.
SMS가 워낙 많아서, 위원회는 원본 자료에서 집계 결과를 뽑아내는 프로그램을 요청했다. 자료는 phone:content 쌍의 목록으로 주어진다. phone은 보낸 사람의 전화번호이고, content는 SMS 내용이다. 선택지별 득표율을 계산하라. 자료를 처리할 때 다음 규칙을 지켜야 한다.
+98 (21) 6616-6645에서 국가 번호는 98, 지역 번호는 21, 시내 번호는 6616-6645다. A, B, C는 모두 숫자 0으로 시작하지 않는다.+ 기호가 붙는다. 국가 번호가 없으면 98로 본다. 국가 번호는 최대 3자리다.02166166600과 (21)66166600이 그런 예다. 지역 번호가 없으면 21로 본다. 지역 번호는 최대 3자리다.6616과 66166600이 그 예다.09128122190, +98(912)812-2190, 0912-812-2190은 모두 같은 번호다. 형식 규칙은 다음과 같다.
-)가 들어갈 수 있다. 붙임표와 괄호는 서로 붙어 나오지 않는다.+98 (21) 6616의 완전한 형태는 98216616이다. 완전한 형태가 같은 두 SMS는 같은 사람이 보낸 것이다.(218)4460과 (21)84460은 완전한 형태가 둘 다 982184460이므로, 서로 다른 번호로 동시에 존재하지 않는다.+ 기호가 섞인 내용은 잘못된 것이므로 그 SMS는 버린다.입력에는 테스트 케이스가 여러 개 들어 있다. 각 테스트 케이스의 첫 줄에는 목록에 있는 SMS의 개수 n (1≤n≤10000)이 주어진다. 이어지는 n개의 줄에는 각각 a:b 꼴의 쌍이 주어진다. a는 전화번호이고, b는 SMS 내용이다. 전화번호에는 :가 들어가지 않으므로, 한 줄에서 처음 나오는 : 앞이 전화번호이고 그 뒤 전체가 SMS 내용이다. SMS 내용은 최대 30자이고, 각 문자는 영문자나 숫자, 또는 :, +, -, (, ) 중 하나다. 입력의 마지막 줄에는 0만 주어지며 이 줄은 처리하지 않는다. 입력에는 공백 문자가 없다.
각 테스트 케이스마다 다섯 줄을 출력한다.
처음 네 줄 중 i번째 줄에는 i번 선택지의 득표율을 정수로 버린 값 뒤에 %를 붙여 출력한다. i번 선택지의 득표수를 ci, 인정된 전체 득표수를 T라 하면 출력할 값은 ⌊100ci/T⌋다. T=0이면 네 줄 모두 0%를 출력한다.
다섯째 줄에는 참가자 수 x를 Participants:x 꼴로 출력한다. x는 목록에 등장한 서로 다른 전화번호의 개수이며, 올바른 SMS를 하나도 보내지 않은 번호도 센다.