Difference Maximization

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

요약
일부 값이 지워진 수열에서 0인 자리를 1부터 M 사이의 정수로 채워 모든 쌍의 절댓값 차이 합을 최대로 만든다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

카이스트의 PS 동아리인 RUN은 무려 NN명의 회원을 가지고 있는 유서깊은 동아리이다. 회원 수가 많은 만큼, RUN에는 매우 다양한 실력대의 회원들이 있다. RUN의 친목부장인 코코아는 회원들간의 친밀도를 조사하기 위해 회원들의 실력을 조사해두었다. 코코아는 ii번째 회원의 실력이 양의 정수 a_ia\_i라는 사실과, 모든 회원들의 실력이 MM 이하라는 사실을 확인하였다.

코코아는 실력의 분포가 다양할수록 회원들간의 친밀도가 높을 것이라고 생각했다. 따라서, 코코아는 RUN의 친밀도를 ∑_1≤i\<j≤n∣a_i−a_j∣\sum\_{1\le i\<j\le n} |a\_i-a\_j|와 같이 정의했다.

유감스럽게도, 업무를 처리하던 코코아는 회원들의 실력이 적힌 명부에 코코아를 쏟아 일부 회원들의 실력을 알아볼 수 없게 되었다! 코코아가 쏟아진 명부를 보면서, 문득 코코아는 알아볼 수 없게 된 회원들의 실력에 따른 RUN의 친밀도의 최댓값이 궁금해졌다. 코코아를 대신해서 실력을 알아볼 수 없는 회원들의 실력들을 11부터 MM 사이의 정수로 적절히 대체할 때, 가능한 RUN의 친밀도의 최댓값을 구해보자.

입력

첫 줄에 RUN의 회원수인 정수 NN과, 회원들의 실력의 상계인 정수 MM이 주어진다.

그 뒤, 두 번째 줄에 NN개의 음이 아닌 정수 a_ia\_i가 공백으로 구분되어 주어진다. 이는 a_i≥1a\_i\ge 1이라면 ii번째 회원의 실력이 a_ia\_i라는 것이고, a_i=0a\_i=0이라면 ii번째 회원의 실력을 알아볼 수 없다는 것이다.

출력

하나의 정수를 출력한다. 이는 a_i=0a\_i=0인 각 ii들에 대해 해당 회원의 실력을 11부터 MM사이의 정수로 적절히 대체하였을 때 얻을 수 있는 RUN의 친밀도의 최댓값이어야 한다.

제한

  • 1≤N≤100,0001\le N\le 100\\,000
  • 1≤M≤1061\le M\le 10^6
  • 모든 1≤i≤N1 \le i \le N에 대하여 0≤a_i≤M0\le a\_i\le M

힌트

RUN에는 친목부장이라는 임원직이 실존하지 않습니다. 만약 자신을 친목부장으로 자처하는 사람을 만난다면, 즉시 다른 임원진을 호출하세요.

예제1

  1. 예제 1

    입력
    5 5
    3 0 4 0 5
    
    예상 출력
    22