만드는 중입니다

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

제출 기록

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

요약
ICPC 제출 기록이 주어질 때, 제출 한 건의 결과를 최대 한 번 바꿔서 금메달을 받을 수 있는 팀을 모두 찾습니다.
난이도

보통10점 중 7점

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

문제

국제 도전 퍼즐 대회(ICPC)에서 mm개의 제출이 있다. 제출 목록 mm개가 시간순으로 주어진다. 제출 하나는 튜플 (c,p,t,s)(c,p,t,s)로 나타낼 수 있으며, 이는 팀 cc가 시각 tt에 문제 pp를 제출했고 상태가 ss라는 뜻이다. 제출의 상태는 "accepted" 또는 "rejected" 중 하나이다.

팀의 점수는 해결한 문제 수와 팀이 소비한 총 시간†^\dagger의 쌍이다. 해결한 문제 수가 많을수록 점수가 높다. 해결한 문제 수가 같으면 소비한 총 시간이 작을수록 점수가 높다.

팀 cc가 문제 pp에 대해 상태가 "accepted"인 제출을 한 번 이상 하면, 팀 cc가 문제 pp를 해결했다고 한다. 점수가 더 높은 팀의 수가 min⁡(⌈0.1⋅n⌉,35)\min(\lceil 0.1 \cdot n \rceil, 35)보다 작으면 그 팀은 금메달을 받을 수 있다. 여기서 nn은 문제를 하나 이상 해결한 팀의 수이고, ⌈x⌉\lceil x \rceil은 xx 이상인 가장 작은 정수를 뜻한다.

mm개의 제출 중 상태를 최대 한 개까지 바꿨을 때 금메달을 받을 수 있는 팀을 모두 찾아야 한다.

†\dagger 소비한 총 시간은 해결한 모든 문제에서 소비한 시간의 합이다(해결한 문제가 없으면 00). 해결한 문제 하나에서 소비한 시간은, 상태가 "accepted"인 첫 제출의 시각에 그 문제에서 첫 accepted 제출 이전에 있던 제출 수의 20배를 더한 값이다. 제출 ii가 제출 jj보다 앞선다는 것은 ii가 주어진 mm개의 제출 목록에서 jj보다 먼저 나타난다는 뜻이다.

입력

입력은 여러 개의 테스트케이스로 이루어진다. 첫 줄에 테스트케이스의 수 tt (1≤t≤1051 \le t \le 10^5)가 주어진다. 각 테스트케이스는 다음과 같다.

첫 줄에 제출의 수 mm (1≤m≤1051 \le m \le 10^5)이 주어진다.

다음 mm개의 줄 중 ii번째 줄에는 c_ic\_i, p_ip\_i, t_it\_i, s_is\_i가 주어진다. 이는 팀 c_ic\_i가 시각 t_it\_i에 문제 p_ip\_i를 제출했고 상태가 s_is\_i임을 뜻한다. 구체적인 조건은 다음과 같다.

  • c_ic\_i는 길이가 1 이상 20 이하인 문자열이며, 대문자, 소문자, 숫자, 밑줄(_)로 이루어진다. 같은 이름을 가진 팀은 없다.
  • p_ip\_i는 대문자 하나이다.
  • t_it\_i는 300보다 작은 음이 아닌 정수이다.
  • s_is\_i는 "accepted" 또는 "rejected"이다.

모든 i<ji < j에 대해 t_i≤t_jt\_i \le t\_j가 보장된다. t_i=t_jt\_i = t\_j이고 i<ji < j이면, ii번째 제출이 jj번째 제출보다 먼저 왔다고 본다.

모든 테스트케이스의 mm 합은 10510^5을 넘지 않는다.

출력

각 테스트케이스에 대해 다음을 출력한다.

첫 줄에 mm개의 제출 중 상태를 최대 한 개 바꿨을 때 금메달을 받을 수 있는 팀의 수 kk를 출력한다.

둘째 줄에는 금메달을 받을 수 있는 팀의 이름을 서로 다른 문자열 kk개로 출력한다. 순서는 상관없다.

힌트

첫 번째 예제의 첫 번째 경우에서 TS1은 문제를 두 개 해결했으므로 금메달을 받을 수 있다. TSxingxing10은 첫 번째 제출의 상태를 "accepted"로 바꾸면 금메달을 받을 수 있다.

첫 번째 예제의 두 번째 경우에서 AllWayTheNorth, XuejunXinyoudui1, LetItRot, ImYourFan은 점수가 같다. 문제 두 개를 해결했고 총 소비 시간은 514514이다. 어떤 제출의 상태도 바꾸지 않아도 이 네 팀은 동시에 금메달을 받을 수 있다.

예제4

  1. 예제 1

    입력
    2
    5
    TSxingxing10 G 0 rejected
    TSxingxing10 B 83 accepted
    aoliaoligeiliao J 98 accepted
    TS1 J 118 accepted
    TS1 B 263 accepted
    12
    AllWayTheNorth A 0 rejected
    YaoYaoLingXian Y 10 accepted
    XuejunXinyoudui1 X 200 rejected
    XuejunXinyoudui1 X 200 accepted
    LetItRot L 215 accepted
    AllWayTheNorth W 250 accepted
    ImYourFan I 257 accepted
    ImYourFan Y 257 accepted
    AllWayTheNorth T 264 accepted
    XuejunXinyoudui1 J 294 accepted
    LetItRot I 299 accepted
    LetItRot I 299 rejected
    
    예상 출력
    2
    TSxingxing10 TS1
    4
    AllWayTheNorth XuejunXinyoudui1 LetItRot ImYourFan
    
  2. 예제 2

    입력
    2
    2
    jiangly_fan A 1 accepted
    jiangly B 23 accepted
    3
    conqueror_of_tourist A 1 accepted
    conqueror_of_tourist A 2 accepted
    tourist B 23 accepted
    
    예상 출력
    2
    jiangly_fan jiangly
    1
    conqueror_of_tourist
    
  3. 예제 3

    입력
    2
    13
    A A 1 accepted
    A X 1 accepted
    K K 1 rejected
    B B 2 accepted
    C C 2 accepted
    D D 2 accepted
    E E 2 accepted
    F F 2 accepted
    G G 2 accepted
    H H 2 accepted
    I I 2 accepted
    J J 2 accepted
    K K 2 rejected
    12
    A A 1 accepted
    A X 1 accepted
    B B 2 accepted
    C C 2 accepted
    D D 2 accepted
    E E 2 accepted
    F F 2 accepted
    G G 2 accepted
    H H 2 accepted
    I I 2 accepted
    J J 2 rejected
    K K 2 rejected
    
    예상 출력
    11
    A K B C D E F G H I J
    1
    A
    
  4. 예제 4

    입력
    2
    11
    A A 1 accepted
    B B 1 accepted
    C C 2 accepted
    D D 2 accepted
    E E 2 accepted
    F F 2 accepted
    G G 2 accepted
    H H 2 accepted
    I I 2 accepted
    J J 2 accepted
    K K 2 accepted
    12
    A A 1 accepted
    A X 1 accepted
    K K 1 rejected
    B B 2 accepted
    C C 2 accepted
    D D 2 accepted
    E E 2 accepted
    F F 2 accepted
    G G 2 accepted
    H H 2 accepted
    I I 2 accepted
    J J 2 accepted
    
    예상 출력
    2
    A B
    2
    A K