아깝게 놓친 COSS 장학금

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

요약
각 학생의 장학 점수를 계산하고 점수 내림차순, 비용 오름차순, 이름 오름차순으로 정렬한 뒤 두 번째 학생의 이름을 출력한다.
난이도

쉬움10점 중 3점

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

문제

COSS 사업단은 데이터 및 보안과 연관된 프로젝트를 진행한 학생들 중에서 가장 우수하게 프로젝트를 진행한 학생에게 장학금을 지급하고자 한다.

COSS 사업단에서 장학금 지급을 담당하는 재민이는 nn명의 학생이 제출한 프로젝트를 평가한 후, 이들의 이름 name\text{name}과 심사한 프로젝트 점수 score\text{score}, 보안 위험도 risk\text{risk}, 프로젝트를 진행하는 데 사용된 비용 cost\text{cost}를 엑셀에 정리하였다.

COSS 사업단은 이렇게 정리한 데이터를 이용하여 가장 우수한 학생을 결정하는 장학 점수를 계산하고, 이 장학 점수가 가장 높은 학생에게 장학금을 지급하기로 했다.

이때, 각 학생의 장학 점수는 다음과 같이 계산된다.

⌊score3cost×(risk+1)⌋\left\lfloor\frac{\text{score}^3}{\text{cost} × (\text{risk} + 1)}\right\rfloor

그러나, 재민이는 장학 점수가 두 번째로 높은 학생도 열심히 노력했지만 장학금을 받지 못한 것이 아쉽다고 생각해 별도의 선물을 주려고 한다.

다시 엑셀을 열어서 선물을 줄 학생을 찾기에는 이미 지친 재민이를 도와서 장학 점수가 두 번째로 높은 학생의 이름을 찾아주자!

입력

첫 번째 줄에 학생의 수를 나타내는 정수 nn이 주어진다. (2≤n≤30)(2 ≤ n ≤ 30)

이후 nn개의 줄에는 각 학생의 name,score,risk,cost\text{name}, \text{score}, \text{risk}, \text{cost} 정보가 공백으로 구분되어 주어진다.

여기서 name\text{name}은 대문자 알파벳으로 이루어진 문자열이며, name\text{name}의 길이는 22 이상 1010 이하이다.

서로 다른 두 학생의 이름이 같은 경우는 주어지지 않는다.

score\text{score}는 1010 이상 100100 이하의 정수, risk\text{risk}는 00 이상 99 이하의 정수, cost\text{cost}는 1010 이상 200200 이하의 정수이다.

출력

학생들을 다음과 같은 순서대로 나열할 때, 앞에서 두 번째로 오는 학생의 이름을 출력한다.

  1. 장학 점수가 높은 학생이 먼저 오도록 내림차순으로 정렬한다.
  2. 장학 점수가 동일한 학생들이 있는 경우, 프로젝트 진행 비용이 적은 학생이 먼저 오도록 오름차순으로 정렬한다.
  3. 장학 점수와 프로젝트 진행 비용이 모두 동일한 학생들이 있는 경우, 이름이 사전 순으로 빠른 학생이 먼저 오도록 정렬한다.

힌트

① ⌊x⌋\lfloor x \rfloor는 xx보다 작거나 같은 정수 중 가장 큰 값을 의미한다.

② "사전 순" 정렬 기준: 문자열을 사전 순으로 정렬할 때는 다음 기준에 따라 순서를 결정한다.

  1. 문자열을 정렬할 때, 앞 글자부터 차례대로 비교하며 알파벳 순서 상 앞선 글자가 먼저 오는 순서가 우선이다.
  2. 비교 중인 글자가 같을 경우, 그다음 글자를 계속 비교하여 순서를 결정한다.
  3. 문자열의 길이가 다를 경우, 앞부분이 모두 같다면 짧은 문자열이 먼저 온다. (예: "ab" → "abc")

예제2

  1. 예제 1

    입력
    5
    KIM 50 1 100
    PARK 70 2 130
    LEE 60 0 120
    CHOI 50 1 90
    JUNG 80 3 160
    
    예상 출력
    PARK
    
  2. 예제 2

    입력
    4
    AA 30 2 20
    BB 20 1 80
    CC 10 1 10
    DD 10 1 10
    
    예상 출력
    CC