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

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

가장 가벼운 언어

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

요약
n, k와 각 글자의 가중치가 주어질 때, k개 글자로 이루어진 n개 단어의 접두사 없는 집합이 가질 수 있는 최소 총 가중치를 구한다.
난이도

어려움10점 중 8점

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

문제

알파벳 AkA_k 는 영어 알파벳의 처음 kk 개 문자로 이루어진다. 각 문자에는 양의 정수 가중치가 하나씩 정해져 있다. AkA_k 의 문자들로 만든 단어의 가중치는 그 단어에 들어 있는 모든 문자의 가중치를 더한 값이고, 언어(AkA_k 위의 단어들로 이루어진 임의의 유한 집합)의 가중치는 그 언어에 속한 모든 단어의 가중치를 더한 값이다.

어떤 언어에서 한 단어가 다른 단어의 접두사가 되는 경우가 전혀 없으면, 그 언어를 접두사 없는(prefixless) 언어라고 부른다. 정확히 nn 개의 단어로 이루어진 접두사 없는 언어의 가중치가 가질 수 있는 최솟값을 구하는 것이 목표다.

예를 들어 k=2k = 2 이고 W(a)=2W(a) = 2, W(b)=5W(b) = 5 라고 하자. 그러면 W(ab)=2+5=7W(ab) = 2 + 5 = 7 이고 W(aba)=2+5+2=9W(aba) = 2 + 5 + 2 = 9 이다. 언어 {ab,aba,b}\{ab, aba, b\} 는 abab 가 abaaba 의 접두사이므로 접두사 없는 언어가 아니다. A2A_2 위에서 단어가 3 개인 가장 가벼운 접두사 없는 언어는 {b,aa,ab}\{b, aa, ab\} 이고, 그 가중치는 5+4+7=165 + 4 + 7 = 16 이다.

nn, kk 와 kk 개 문자의 가중치가 주어질 때, AkA_k 위에서 정확히 nn 개의 단어로 이루어진 접두사 없는 언어의 최소 가중치를 계산하라.

입력

첫째 줄에 두 정수 nn 과 kk 가 공백 하나로 구분되어 주어진다 (2≤n≤10 0002 \le n \le 10\,000, 2≤k≤262 \le k \le 26). 각각 언어에 들어가는 단어의 개수와 알파벳의 문자 개수이다.

둘째 줄에는 kk 개의 양의 정수가 공백 하나로 구분되어 주어지며, 각 값은 10 00010\,000 이하이다. ii 번째 수는 ii 번째 문자의 가중치이다.

출력

AkA_k 위에서 정확히 nn 개의 단어로 이루어진 접두사 없는 언어의 최소 가중치를 정수 하나로 출력한다.

예제7

  1. 예제 1

    입력
    3 2
    2 5
    
    예상 출력
    16
    
  2. 예제 2

    입력
    2 2
    2 5
    
    예상 출력
    7
    
  3. 예제 3

    입력
    4 3
    1 2 100
    
    예상 출력
    12
    
  4. 예제 4

    입력
    3 3
    1 100 100
    
    예상 출력
    201
    
  5. 예제 5

    입력
    2 26
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    
    예상 출력
    2
    
  6. 예제 6

    입력
    10 3
    1 2 3
    
    예상 출력
    40
    
  7. 예제 7

    입력
    26 26
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
    
    예상 출력
    134