만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

샤쉬카 (ШАШКА)

시간 제한2초메모리 제한1024 MB

요약
각 대국 결과에 따라 Elo 레이팅을 입력 순서대로 갱신합니다. 이후 레이팅 내림차순, 같으면 성의 사전순으로 선수를 출력합니다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 해시맵, 정렬
정답자
아직 제출이 없습니다

문제

남극 연합 체스 협회(ШАШКА)에서 페트르는 레이팅 집계를 맡고 있다. 협회는 Elo 레이팅을 사용하며, 레이팅은 0 이상의 정수다. 대국이 끝날 때마다 레이팅은 다음 식으로 다시 계산한다.

RA′=RA+15⋅(SA−EA)R_A' = R_A + 15 \cdot (S_A - E_A)

EA=11+10RB−RA400E_A = \frac{1}{1 + 10^{\frac{R_B - R_A}{400}}}

여기서 RAR_A와 RBR_B는 대국 시작 전 선수 A와 B의 레이팅이고, SAS_A는 A가 대국에서 얻은 점수(패배 0점, 무승부 0.5점, 승리 1점)이며, RA′R_A'는 A의 새 레이팅이다. 새 레이팅은 소수점 이하를 버린 정수로 하고, 0보다 작아지면 0으로 한다.

입력

첫 줄에 정수 nn (2≤n≤10002 \le n \le 1000)이 주어진다. 이어서 nn개의 줄에 각 선수의 대회 시작 전 레이팅 rir_i (ri≤4000r_i \le 4000, 0 이상의 정수)와 성이 공백 한 칸으로 구분되어 주어진다. 성은 대소문자 라틴 문자로만 이루어지며 길이는 50을 넘지 않는다. 모든 성은 비어 있지 않고 서로 다르다.

다음 줄에 대국 수 mm (0≤m≤10000 \le m \le 1000)이 주어진다. 이어서 mm개의 줄에 첫 번째 선수의 성, 두 번째 선수의 성, 정수 xx가 주어진다. x=1x=1이면 첫 번째 선수가 이겼고, x=2x=2이면 두 번째 선수가 이겼으며, x=0x=0이면 무승부다. 대국은 실제로 치른 순서대로 주어진다.

출력

레이팅이 높은 선수부터 내림차순으로 출력한다. 레이팅이 같으면 성이 사전순으로 앞서는 선수를 먼저 출력한다. 입력과 같은 형식으로, 각 줄에 레이팅과 성을 공백 한 칸으로 구분해 적는다.

예제3

  1. 예제 1

    입력
    4
    3040 John
    3030 Jon
    3020 Juan
    3010 Ivan
    3
    Ivan John 1
    Jon Ivan 2
    Ivan Juan 1
    
    예상 출력
    3032 Ivan
    3031 John
    3022 Jon
    3012 Juan
    
  2. 예제 2

    입력
    4
    3040 John
    3030 Jon
    3020 Juan
    3010 Ivan
    3
    Ivan Juan 1
    Jon Ivan 2
    Ivan John 1
    
    예상 출력
    3032 John
    3031 Ivan
    3022 Jon
    3012 Juan
    
  3. 예제 3

    입력
    4
    3011 John
    2995 Jon
    3004 Juan
    3002 Ivan
    3
    Ivan Juan 2
    Jon Ivan 0
    Ivan John 0
    
    예상 출력
    3011 Juan
    3010 John
    2994 Ivan
    2994 Jon