점수를 최대로

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

요약
학생 K명이 서로 다른 목적지 교실을 정할 때, 각 교실 i를 지나는 학생 수에 A_i를 곱한 값들의 합이 최대가 되도록 목적지를 고르고 그 최댓값을 구한다.
난이도

어려움10점 중 8점

유형
그리디, 정렬, 동적 계획법, 누적 합
정답자
아직 제출이 없습니다

문제

단대소프트고에는 교실 NN개가 있다. 교실은 11번부터 NN번까지 1,2,…,N1, 2, \ldots, N 순서로 연달아 있다.

학교 밖에는 KK명의 학생들이 있다. KK명의 학생은 학교에 들어가기 전 학생마다 목적지 교실을 정하게 된다. jj번째 학생의 목적지는 B_jB\_j번 교실이다. 학생들의 목적지는 모두 달라야 한다. jj번째 학생은 11번 교실, 22번 교실, …,B_j\ldots, B\_j번 교실까지 모든 교실에 들어갔다 나오게 된다. 마지막 교실까지 들어갔다 나오게 되면 아무 교실도 방문하지 않고 다시 학교 밖으로 나간다.

모든 학생의 방문이 끝나면, 교실의 점수를 구할 수 있다. ii번째 교실의 점수는 A_iA\_i × (ii번째 교실에 학생이 들어갔다 나온 횟수)가 된다. 학생들은 학교에 들어가기 전 방문 후의 교실의 점수의 합이 최대가 되도록 의논하여 목적지를 정한다. 이때 방문이 끝난 후 모든 교실의 점수의 합을 구해보자.

입력

첫째 줄에 NN과 KK가 공백으로 구분되어 입력된다. (1≤K≤N≤300,000)(1≤K≤N≤300\\,000)

둘째 줄에 정수 A_1,A_2,...A_NA\_1, A\_2, ... A\_N이 공백으로 구분되어 입력된다. (−108≤A_i≤108)(-10^8≤A\_i≤10^8)

출력

첫째 줄에 방문이 끝난 후 모든 교실의 점수의 합을 출력한다.

예제1

  1. 예제 1

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