아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

핀볼 랭킹

면접 대비

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

요약
경기 순서대로 주어진 점수에 대해, 각 점수의 순위를 전체 점수 중 자신보다 큰 점수 개수에 1을 더해 구하고, 그 순위들의 평균을 기약분수로 출력한다.
난이도

보통10점 중 5점

유형
이분 탐색, 정렬, 배열, 구현
정답자
아직 제출이 없습니다

문제

핀볼은 플레이어가 플리퍼(flipper)로 은색 공을 조작하여 최대한 많은 점수를 얻는 것을 목표로 하는 아케이드 게임이다. 각 게임이 끝나면 플레이어의 점수와 순위가 화면에 표시된다.

점수는 방금 끝난 게임에서 얻은 값으로, 00 이상 10910^9 이하의 정수이다. 순위는 "rr of nn" 형태로 표시된다. 여기서 nn은 이 기계에서 지금까지 진행된 게임의 총 횟수이고, rr은 이번 게임의 점수가 이 전체 게임 집합에서 차지하는 위치이다.

더 정확히 말하면, rr은 방금 끝난 게임보다 점수가 더 높은(초과하는) 게임의 수에 11을 더한 값이다.

입력

핀볼 기계의 순위 계산 알고리즘을 구현하라.

입력의 첫 번째 줄에는 이 기계에서 지금까지 진행된 게임의 총 횟수를 나타내는 양의 정수 tt가 주어진다. 이어서 tt개의 줄에 걸쳐 각 게임의 점수가 진행된 순서(시간순)대로 한 줄에 하나씩 주어진다.

  • 1≤t≤1000001 \le t \le 100000
  • 0≤(점수)≤1090 \le (\text{점수}) \le 10^9
  • 적어도 하나의 테스트에서는 t≤100t \le 100이며, 모든 테스트에서 t≤100000t \le 100000이다.

출력

게임이 끝날 때마다 화면에 표시된 순위 rr들의 평균을 기약분수 p/qp/q 형태로 출력하라.

즉, 표시된 모든 순위의 합을 SS, 게임의 총 횟수를 tt라 할 때, 평균 S/tS/t를 기약분수로 나타내어 분자와 분모를 "p/qp/q" 형식으로 출력한다. 분모 qq는 항상 양수이며, 평균이 정수이더라도 분모를 생략하지 않고 "p/1p/1" 형태로 출력한다. (예: 평균이 22이면 2/1.)

힌트

예를 들어 점수가 순서대로 100,200,150,170,50100, 200, 150, 170, 50으로 주어지면, 핀볼 화면에는 게임이 끝날 때마다 다음과 같이 순위가 표시된다.

1 of 1
1 of 2
2 of 3
2 of 4
5 of 5

따라서 표시된 순위는 차례로 1,1,2,2,51, 1, 2, 2, 5이고, 이들의 평균은 (1+1+2+2+5)/5=11/5(1+1+2+2+5)/5 = 11/5이다.

같은 점수는 서로를 "초과"하지 않으므로, 동점인 게임끼리는 순위에서 서로를 밀어내지 않는다.

예제4

  1. 예제 1

    입력
    5
    100
    200
    150
    170
    50
    
    예상 출력
    11/5
    
  2. 예제 2

    입력
    1
    500
    
    예상 출력
    1/1
    
  3. 예제 3

    입력
    3
    5
    5
    5
    
    예상 출력
    1/1
    
  4. 예제 4

    입력
    4
    40
    30
    20
    10
    
    예상 출력
    5/2