순위표

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

프로그래밍 대회의 순위표를 만드는 프로그램을 작성한다. 참가 팀 목록과, 팀들이 제출한 모든 풀이를 기록한 로그가 주어진다.

채점은 다음 규칙을 따른다.

  1. 팀은 맞힌 문제의 총개수가 많은 순서대로 순위가 매겨진다.
  2. 맞힌 문제 수가 같은 팀들은 총 시간이 적은 순서대로 순위가 매겨진다.
  3. 총 시간은 맞힌 각 문제에 소요된 시간의 합이다. 어떤 문제에 소요된 시간은, 대회 시작부터 그 문제가 정답으로 처리된 제출까지 걸린 시간(분)에, 그 문제에 대해 오답으로 처리된 제출 하나마다 벌점 20분을 더한 값이다(오답 제출 시각과는 무관하다). 끝내 맞히지 못한 문제는 시간에 포함되지 않는다.

총 시간이 같을 때의 세부 동점 처리 절차는 이 문제에서 구현하지 않는다. 대신, 맞힌 문제 수와 총 시간이 모두 같은 팀이 둘 이상이면 이들에게 같은 순위를 부여하고 이름의 알파벳 순으로 나열한다.

팀의 순위 rr은 정확히 r1r-1개 팀이 더 좋은 성적을 냈음을 뜻하므로, 동점이 발생하면 순위는 건너뛴다. 예를 들어 상위 두 팀의 맞힌 문제 수와 총 시간이 같다면 두 팀 모두 순위 11을 받고, 그다음 팀은 순위 33을 받는다. 이때 순위 22를 받는 팀은 없다.

마지막으로, 같은 팀이 같은 문제에서 이미 정답으로 처리받은 뒤에 낸 오답 제출에는 벌점을 매기지 않는다.

입력

첫째 줄에 시나리오의 개수가 주어진다.

각 시나리오는 팀의 수 nn(1n201 \le n \le 20)이 적힌 줄로 시작하고, 이어지는 nn개의 줄에 팀들의 서로 다른 이름이 알파벳 순으로 주어진다. 팀 이름은 영문자와 숫자로만 이루어진 길이 8 이하의 한 단어이다.

그다음 줄에는 문제의 수 kk와 제출된 풀이의 수 mm이 주어진다(1k<101 \le k < 10, 0m20000 \le m \le 2000). 이어지는 mm개의 줄은 각각 하나의 제출을 problem time correctness team 형식으로 나타낸다. 여기서 1problemk1 \le problem \le k는 문제 번호, 0time<3000 \le time < 300은 대회 시작 이후 경과한 시간(분), correctness는 Yes 또는 No, team은 제출한 팀의 이름이다. 제출들은 시간 순으로 정렬되어 있다.

출력

각 시나리오마다 참가한 모든 팀을 담은 순위표를 출력한다. 각 줄의 형식은 rank. team solved time이며, rank는 순위, team은 팀 이름, solved는 맞힌 문제 수, time은 총 시간이다.

네 항목은 한 칸의 공백으로 구분하며, 고정 너비를 사용한다. 순위는 너비 2, 팀 이름은 너비 8, 맞힌 문제 수는 너비 1, 총 시간은 너비 4이다. 이름은 왼쪽 정렬, 숫자는 오른쪽 정렬한다(예제 출력 참고).

서로 다른 시나리오의 순위표는 빈 줄로 구분한다.