만드는 중입니다

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

점수 관리

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

요약
점수가 높은 순으로 순위를 매기고 동점자는 같은 순위를 줍니다. 숨김이 아닌 참가자를 순위순, 동순위는 이름 사전순으로 출력합니다.
난이도

쉬움10점 중 3점

유형
정렬, 구현
정답자
아직 제출이 없습니다

문제

민겸이는 2023 INPC 참가자들의 점수를 관리하는 업무를 맡고 있다. 대회가 끝나면 순위표를 공개하려고 하는데, 이 순위표를 만드는 프로그램을 작성하자. 참가자마다 이름, 점수, 비공개 여부 세 가지 값이 있다.

  • 2023 INPC의 참가자는 NN명이다.
  • 각 참가자는 이름, 점수, 비공개 여부를 가진다.
    • 이름은 영어 소문자로 이루어진 길이 1 이상 10 이하의 문자열이다.
    • 점수는 1 이상 10910^9 이하의 정수이다.
    • 비공개 여부는 참 또는 거짓이며, 순위표에서 그 참가자를 숨길지 정한다.
  • 두 참가자의 점수가 다르면 점수가 높은 참가자에게 더 높은 순위를 매긴다. 가장 높은 순위는 1등이고, 가장 낮은 순위는 NN등이다.
  • 동점자가 있으면 모두에게 가능한 가장 높은 순위를 매긴다. 예를 들어 여섯 명의 점수가 10, 10, 8, 6, 6, 6이면 순위는 1, 1, 3, 4, 4, 4가 된다.
  • 순위표에는 비공개를 선택하지 않은 참가자만 순위가 높은 순서대로 보여준다. 각 참가자는 순위, 이름, 점수 순으로 나타낸다. 순위가 같으면 이름이 사전순으로 앞서는 참가자를 먼저 보여준다. 비공개를 선택한 참가자는 순위표에 나타나면 안 된다. 비공개 여부는 실제 순위에 영향을 주지 않는다.

입력

첫 번째 줄에 참가자의 수 NN이 주어진다. 두 번째 줄부터 NN개의 줄에 걸쳐 한 줄에 참가자 한 명의 정보가 주어진다. 참가자 정보는 {"name":"이름","score":점수,"isHidden":비공개 여부} 형식으로 공백 없이 주어진다. 비공개 여부는 참이면 1, 거짓이면 0이다.

첫 번째 참가자 정보 바로 앞에는 여는 대괄호가 하나 있고, 마지막 참가자 정보 바로 뒤에는 닫는 대괄호가 하나 있다. 각 참가자 정보 사이에는 줄이 끝날 때마다 쉼표가 하나씩 있다.

출력

올바른 순위표를 출력한다. 각 줄에는 한 참가자의 순위, 이름, 점수를 공백으로 구분하여 출력한다. 순위가 높은 참가자부터 출력하고, 순위가 같으면 이름이 사전순으로 앞서는 참가자를 먼저 출력한다. 비공개 여부가 참인 참가자는 출력하지 않는다.

제한

  • 1≤N≤10001 \le N \le 1000
  • 모든 참가자의 이름은 서로 다르다.
  • 점수를 공개하는 참가자가 적어도 한 명 있다.

예제2

  1. 예제 1

    입력
    5
    [{"name":"yooshnn","score":9815,"isHidden":1},
    {"name":"netcopjr","score":9811,"isHidden":0},
    {"name":"chlwnsgud","score":9811,"isHidden":0},
    {"name":"aym","score":9815,"isHidden":0},
    {"name":"sonhy","score":9807,"isHidden":0}]
    
    예상 출력
    1 aym 9815
    3 chlwnsgud 9811
    3 netcopjr 9811
    5 sonhy 9807
    
  2. 예제 2

    입력
    1
    [{"name":"inpc","score":1000000000,"isHidden":0}]
    
    예상 출력
    1 inpc 1000000000