만드는 중입니다

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

최댓값 합의 최솟값

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

요약
고정되지 않은 타일들을 자유롭게 맞바꿔, 인접한 두 타일 값의 큰 쪽을 모두 더한 합의 최솟값을 구합니다.
난이도

보통10점 중 7점

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

문제

Bessie에게는 한 줄로 놓인 NN개의 타일이 있다 (2≤N≤3002\le N\le 300). 왼쪽에서 ii번째 타일의 불편도는 aia_i이다 (1≤ai≤1061\le a_i\le 10^6). 이 중 KK개의 타일 (0≤K≤min⁡(N,6)0\le K\le \min(N,6))은 제자리에 고정되어 있으며, 그 번호는 x1,…,xKx_1, \dots, x_K이다 (1≤x1<x2<⋯<xK≤N1\le x_1 < x_2 < \dots < x_K\le N).

Bessie는 타일 전체의 불편도를 최소화하려고 한다. 전체 불편도는 연속한 두 타일마다 불편도가 큰 값을 구해 모두 더한 값, 즉 ∑i=1N−1max⁡(ai,ai+1)\sum_{i=1}^{N-1}\max(a_i,a_{i+1})이다. Bessie는 고정되지 않은 두 타일을 골라 서로 교환할 수 있으며, 이 연산은 원하는 횟수만큼 수행할 수 있다.

연산을 최적으로 수행했을 때 달성할 수 있는 전체 불편도의 최솟값을 구하라.

입력

첫째 줄에 NN과 KK가 주어진다.

둘째 줄에 a1,…,aNa_1, \dots, a_N이 주어진다.

셋째 줄에 고정된 KK개의 번호 x1,…,xKx_1, \dots, x_K가 주어진다.

출력

전체 불편도의 최솟값을 출력한다.

예제4

  1. 예제 1

    입력
    3 0
    1 100 10
    
    
    예상 출력
    110
    
  2. 예제 2

    입력
    3 1
    1 100 10
    3
    
    예상 출력
    110
    
  3. 예제 3

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

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