시간 제한
1.000 S
메모리 제한
512 MB
제출 수
1
정답 수
1
정답률
100.000%
문제 설명

Algorithm Wiki에는 문제마다 해당 문제의 명예의 전당이 존재 한다. 이 시스템을 간소화 해 구현해 보도록 하자.

정답 판정을 받은 제출에 대해 우리는 다음의 정보를 얻을 수 있다.

  • 제출 번호
    • $i$번째 제출은 제출 번호 $i$를 갖는다.
    • 맨 처음 제출의 제출 번호는 $1$이다.
  • 유저 아이디
    • 길이 $1$ 이상 $10$ 이하의 문자열로, 알파벳 소문자로만 구성된다.
  • 실행 시간
    • $1$ 이상 $1,000$ 이하의 정수이다.
  • 사용 메모리
    • $1$ 이상 $1,000$ 이하의 정수이다.
  • 사용 언어
    • $1$ 이상 $4$ 이하의 정수로 표현된다.
    • 출력에선 다음을 따라 치환하여 표현해야 한다.
      1. C
      2. C++
      3. Java
      4. Python
  • 코드 길이
    • $1$ 이상 $1,000$ 이하의 정수이다.
  • 제출한 시간
    • $YYYY$-$MM$-$DD$ $hh$:$mm$:$ss$ 의 형식으로 주어진다.
      • $2024 ≤ YYYY ≤ 2025$
      • $01 ≤ MM ≤ 12$
      • $01 ≤ DD ≤ 30$
      • $00 ≤ hh ≤ 23$
      • $00 ≤ mm ≤ 59$
      • $00 ≤ ss ≤ 59$
    • 모든 제출 번호의 상대적 우선순위와 같은 우선순위가 보장되며, 중복되지 않는다.

명예의 전당은 '속도', '메모리', '숏코딩', '선발대'로 총 $4$개의 부문으로 구성된다. 우선 공통으로 적용되는 기준을 보자.

  1. 부문 당 $1, 2, 3$위가 존재한다.
  2. 한 사람은 서로 다른 부문에 등재될 수 있다.
  3. 한 사람은 한 부문의 $1, 2, 3$위 중 한 곳에만 등재될 수 있다.
    • 한 사람이 여러번 제출한 경우, 당연히 부문에 따라 그 중에서 가장 좋은 결과를 가지고 판단한다.

이어서 각 부문별로 등재 기준을 보자.

  • 속도
    1. 실행 시간이 작은 순
    2. 실행 시간이 같다면 제출 번호가 작은 순
  • 메모리
    1. 사용 메모리가 작은 순
    2. 사용 메모리가 같다면 제출 번호가 작은 순
  • 숏코딩
    1. 코드 길이가 짧은 순
    2. 코드 길이가 같다면 제출 번호가 작은 순
  • 선발대
    1. 제출 번호가 작은 순

마지막으로 각 부문별 표기 정보를 보자.

  • 속도
    • 유저 아이디 / 실행 시간 / 사용 언어
  • 메모리
    • 유저 아이디 / 사용 메모리 / 사용 언어
  • 숏코딩
    • 유저 아이디 / 코드 길이 / 사용 언어
  • 선발대
    • 유저 아이디 / 제출한 시간 / 사용 언어
위를 토대로 $n$개의 제출 기록이 주어질 때, 각 제출 기록에 따라 변화하는 명예의 전당의 모습을 출력하는 프로그램을 작성하자.

편의 상 모든 제출은 동일한 문제에 대한 제출이라고 가정하며, 채점 결과 역시 모두 정답 판정을 받았다고 생각하면 된다.

입력 설명

첫째 줄에 제출 기록의 수를 의미하는 정수 $n$이 주어진다. $(1 ≤ n ≤ 100)$

두번째 줄부터 $n$개의 줄에 걸쳐 $i$번째 제출의 정보가 공백으로 구분되어 주어진다. 주어지는 순서 및 제한은 본문에 나열한 순서와 동일하다.

출력 설명

$1, 2, ... , n$번 제출 기록이 주어졌을 때의 명예의 전당의 모습을 첫째 줄부터 총 $n \times 5$개의 줄에 걸쳐 차례대로 출력한다.

각 출력은 다음을 따른다.

  • 첫 번째 행 : 속도 부문에 등재된 $1, 2, 3$위의 표기 정보를 공백으로 구분하여 출력한다.
  • 두 번째 행 : 메모리 부문에 등재된 $1, 2, 3$위의 표기 정보를 공백으로 구분하여 출력한다.
  • 세 번째 행 : 숏코딩 부문에 등재된 $1, 2, 3$위의 표기 정보를 공백으로 구분하여 출력한다.
  • 네 번째 행 : 선발대 부문에 등재된 $1, 2, 3$위의 표기 정보를 공백으로 구분하여 출력한다.
  • 다섯 번째 행 : 개행 문자를 출력한다.

각 행에서의 표기 정보는 '{', '}'로 감싸주어야 하며, 만약 $1$위만 있거나 $1, 2$위만 있는 경우 그들의 정보만 출력해야 한다.

자세한 형식은 예제를 참고하자.

예시 1
입력
4
hun 100 500 4 317 2024-04-09 13:22:22
pill 80 300 1 520 2024-04-09 13:23:22
kiwi 80 299 2 555 2024-04-09 14:00:00
hun 75 800 4 415 2024-04-10 17:13:50
출력
{hun/100/Python}
{hun/500/Python}
{hun/317/Python}
{hun/2024-04-09 13:22:22/Python}

{pill/80/C}, {hun/100/Python}
{pill/300/C}, {hun/500/Python}
{hun/317/Python}, {pill/520/C}
{hun/2024-04-09 13:22:22/Python}, {pill/2024-04-09 13:23:22/C}

{pill/80/C}, {kiwi/80/C++}, {hun/100/Python}
{kiwi/299/C++}, {pill/300/C}, {hun/500/Python}
{hun/317/Python}, {pill/520/C}, {kiwi/555/C++}
{hun/2024-04-09 13:22:22/Python}, {pill/2024-04-09 13:23:22/C}, {kiwi/2024-04-09 14:00:00/C++}

{hun/75/Python}, {pill/80/C}, {kiwi/80/C++}
{kiwi/299/C++}, {pill/300/C}, {hun/500/Python}
{hun/317/Python}, {pill/520/C}, {kiwi/555/C++}
{hun/2024-04-09 13:22:22/Python}, {pill/2024-04-09 13:23:22/C}, {kiwi/2024-04-09 14:00:00/C++}

예시 2
입력
3
kiwi 5 512 2 661 2024-04-09 14:00:00
kiwi 4 622 2 412 2024-05-13 22:10:23
kiwi 3 456 2 568 2025-01-01 00:00:01
출력
{kiwi/5/C++}
{kiwi/512/C++}
{kiwi/661/C++}
{kiwi/2024-04-09 14:00:00/C++}

{kiwi/4/C++}
{kiwi/512/C++}
{kiwi/412/C++}
{kiwi/2024-04-09 14:00:00/C++}

{kiwi/3/C++}
{kiwi/456/C++}
{kiwi/412/C++}
{kiwi/2024-04-09 14:00:00/C++}

예시 3
입력
4
pill 100 399 2 800 2024-04-12 11:00:00
hun 150 500 4 600 2024-04-22 12:30:00
pill 80 222 3 300 2024-05-02 14:00:00
hun 180 812 4 1 2024-05-12 15:30:00
출력
{pill/100/C++}
{pill/399/C++}
{pill/800/C++}
{pill/2024-04-12 11:00:00/C++}

{pill/100/C++}, {hun/150/Python}
{pill/399/C++}, {hun/500/Python}
{hun/600/Python}, {pill/800/C++}
{pill/2024-04-12 11:00:00/C++}, {hun/2024-04-22 12:30:00/Python}

{pill/80/Java}, {hun/150/Python}
{pill/222/Java}, {hun/500/Python}
{pill/300/Java}, {hun/600/Python}
{pill/2024-04-12 11:00:00/C++}, {hun/2024-04-22 12:30:00/Python}

{pill/80/Java}, {hun/150/Python}
{pill/222/Java}, {hun/500/Python}
{hun/1/Python}, {pill/300/Java}
{pill/2024-04-12 11:00:00/C++}, {hun/2024-04-22 12:30:00/Python}

기여
만든 사람 : pill27211
검수한 사람 : algokiwi