만드는 중입니다

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

의자 게임

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

요약
무작위로 정해지는 색의 가장 가까운 의자까지 걸어야 하는 거리의 기댓값이 최소가 되는 시작 의자를 정하고, 그 기댓값을 기약분수로 출력한다.
난이도

어려움10점 중 8점

유형
수학, 누적 합, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

당신은 이상한 게임에 참가한다. 1미터 간격으로 일렬로 놓인 nn개의 의자가 있다. 각 의자는 cc가지 색 중 하나로 칠해져 있다.

처음에 당신은 아무 의자에나 앉을 수 있다. 그러면 심사위원이 색 하나를 골라 발표한다. 각 색이 선택될 확률은 1c\frac{1}{c}이다. 당신의 임무는 그 색의 의자로 이동하는 것이다.

물론 가장 가까운 해당 색 의자로 이동한다. 이미 그 의자에 앉아 있다면 전혀 움직이지 않는다.

당신은 처음에 앉을 의자를 잘 골라, 걸어야 하는 거리의 기댓값을 최소화하려 한다.

입력

첫째 줄에 두 정수 nn과 cc가 주어진다. nn은 의자의 수, cc는 색의 수이다 (1≤c≤n≤1061 \leq c \leq n \leq 10^6).

둘째 줄에 nn개의 정수 a_ia\_i가 주어진다. a_ia\_i는 의자의 색이다 (1≤a_i≤c1 \leq a\_i \leq c). 각 색의 의자는 적어도 하나씩 있다.

출력

기댓값을 기약분수로 출력한다.

예제2

  1. 예제 1

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

    입력
    5 5
    1 2 3 4 5
    
    예상 출력
    6/5