순위표
시간 제한1초메모리 제한128 MB
푼 문제 수와 총 시간으로 팀 순위를 매기고, 동점이면 같은 순위를 주고 알파벳 순으로 나열한다.
문제
프로그래밍 대회의 순위표를 만드는 프로그램을 작성한다. 참가 팀 목록과, 팀들이 제출한 모든 풀이를 기록한 로그가 주어진다.
채점은 다음 규칙을 따른다.
- 팀은 맞힌 문제의 총개수가 많은 순서대로 순위가 매겨진다.
- 맞힌 문제 수가 같은 팀들은 총 시간이 적은 순서대로 순위가 매겨진다.
- 총 시간은 맞힌 각 문제에 소요된 시간의 합이다. 어떤 문제에 소요된 시간은, 대회 시작부터 그 문제가 정답으로 처리된 제출까지 걸린 시간(분)에, 그 문제에 대해 오답으로 처리된 제출 하나마다 벌점 20분을 더한 값이다(오답 제출 시각과는 무관하다). 끝내 맞히지 못한 문제는 시간에 포함되지 않는다.
총 시간이 같을 때의 세부 동점 처리 절차는 이 문제에서 구현하지 않는다. 대신, 맞힌 문제 수와 총 시간이 모두 같은 팀이 둘 이상이면 이들에게 같은 순위를 부여하고 이름의 알파벳 순으로 나열한다.
팀의 순위 은 정확히 개 팀이 더 좋은 성적을 냈음을 뜻하므로, 동점이 발생하면 순위는 건너뛴다. 예를 들어 상위 두 팀의 맞힌 문제 수와 총 시간이 같다면 두 팀 모두 순위 을 받고, 그다음 팀은 순위 을 받는다. 이때 순위 를 받는 팀은 없다.
마지막으로, 같은 팀이 같은 문제에서 이미 정답으로 처리받은 뒤에 낸 오답 제출에는 벌점을 매기지 않는다.
입력
첫째 줄에 시나리오의 개수가 주어진다.
각 시나리오는 팀의 수 ()이 적힌 줄로 시작하고, 이어지는 개의 줄에 팀들의 서로 다른 이름이 알파벳 순으로 주어진다. 팀 이름은 영문자와 숫자로만 이루어진 길이 8 이하의 한 단어이다.
그다음 줄에는 문제의 수 와 제출된 풀이의 수 이 주어진다(, ). 이어지는 개의 줄은 각각 하나의 제출을 problem time correctness team 형식으로 나타낸다. 여기서 는 문제 번호, 은 대회 시작 이후 경과한 시간(분), correctness는 Yes 또는 No, team은 제출한 팀의 이름이다. 제출들은 시간 순으로 정렬되어 있다.
출력
각 시나리오마다 참가한 모든 팀을 담은 순위표를 출력한다. 각 줄의 형식은 rank. team solved time이며, rank는 순위, team은 팀 이름, solved는 맞힌 문제 수, time은 총 시간이다.
네 항목은 한 칸의 공백으로 구분하며, 고정 너비를 사용한다. 순위는 너비 2, 팀 이름은 너비 8, 맞힌 문제 수는 너비 1, 총 시간은 너비 4이다. 이름은 왼쪽 정렬, 숫자는 오른쪽 정렬한다(예제 출력 참고).
서로 다른 시나리오의 순위표는 빈 줄로 구분한다.