만드는 중입니다

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

카드 합체 놀이

면접 대비

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

요약
카드 두 장을 골라 두 장 모두 두 수의 합으로 바꾸는 연산을 정확히 m번 해서 모든 카드 합의 최솟값을 구한다.
난이도

보통10점 중 5점

유형
그리디, 힙, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

자연수가 적힌 카드 nn장이 있다. 처음에 ii번 카드에는 aia_i가 적혀 있다. 카드 합체는 다음 과정을 따른다.

  1. 서로 다른 두 카드 xx번 카드와 yy번 카드를 고르고 두 수의 합을 계산한다. (x≠yx \ne y)
  2. 계산한 값을 xx번 카드와 yy번 카드에 모두 덮어쓴다.

카드 합체를 총 mm번 수행한 뒤 nn장 카드에 적힌 수의 합이 점수가 된다. 점수가 가장 작아지도록 합체할 카드를 고를 때 만들 수 있는 가장 작은 점수를 구한다.

입력

첫 번째 줄에 카드의 개수 nn(2≤n≤10002 \le n \le 1000)과 합체 횟수 mm(0≤m≤15n0 \le m \le 15n)이 공백으로 구분되어 주어진다.

두 번째 줄에 처음 카드에 적힌 nn개의 자연수 a1,a2,…,ana_1, a_2, \dots, a_n이 공백으로 구분되어 주어진다. (1≤ai≤10000001 \le a_i \le 1000000)

출력

첫 번째 줄에 만들 수 있는 가장 작은 점수를 출력한다.

예제2

  1. 예제 1

    입력
    3 1
    3 2 6
    
    예상 출력
    16
    
  2. 예제 2

    입력
    4 2
    4 2 3 1
    
    예상 출력
    19