5417 : C18 - 두 개씩 제거하기 (Pick Two)
•시간제한: 2.000 S
•메모리제한: 1024 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
길이 $2N$ 의 양의 정수 수열 $A = (A_1, A_2, \dots, A_{2N})$ 이 주어집니다. 당신은 다음 조작을 통해 수열 $A$ 의 모든 수를 제거하려 합니다.
• 현재 남은 수열을 $(A'_1, A'_2, \dots, A'_M)$ 이라 할 때, 인접한 두 원소 $A'_i, A'_{i+1}$ ($1 \le i < M$)을 선택하여 수열에서 제거합니다.
• 이 조작을 수행할 때 $|A'_i - A'_{i+1}|$ 만큼의 비용이 발생합니다.
이 조작을 정확히 $N$ 번 반복하여 수열 $A$ 의 모든 수를 제거할 때, 발생하는 **총 비용의 합의 최솟값**을 구하는 프로그램을 작성하십시오.
[제약 조건]
• $1 \le N \le 200$
• $1 \le A_i \le 10^9$
• 입력되는 모든 값은 정수입니다.
• 현재 남은 수열을 $(A'_1, A'_2, \dots, A'_M)$ 이라 할 때, 인접한 두 원소 $A'_i, A'_{i+1}$ ($1 \le i < M$)을 선택하여 수열에서 제거합니다.
• 이 조작을 수행할 때 $|A'_i - A'_{i+1}|$ 만큼의 비용이 발생합니다.
이 조작을 정확히 $N$ 번 반복하여 수열 $A$ 의 모든 수를 제거할 때, 발생하는 **총 비용의 합의 최솟값**을 구하는 프로그램을 작성하십시오.
[제약 조건]
• $1 \le N \le 200$
• $1 \le A_i \le 10^9$
• 입력되는 모든 값은 정수입니다.
입력 설명
첫째 줄에 정수 $N$ 이 주어집니다.
둘째 줄에 수열의 원소 $A_1, A_2, \dots, A_{2N}$ 이 공백으로 구분되어 주어집니다.
둘째 줄에 수열의 원소 $A_1, A_2, \dots, A_{2N}$ 이 공백으로 구분되어 주어집니다.
출력 설명
총 비용 합의 최솟값을 출력하십시오.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
3
6 2 3 9 8 6
출력 예시
COPY
복사되었습니다!
복사되었습니다!
2
도움
1. $A_2(=2)$ 와 $A_3(=3)$ 제거 (비용: $|2-3|=1$) $\to$ 남은 수열: $(6, 9, 8, 6)$
2. 가운데 $9$ 와 $8$ 제거 (비용: $|9-8|=1$) $\to$ 남은 수열: $(6, 6)$
3. 마지막 $6$ 과 $6$ 제거 (비용: $|6-6|=0$)
총 비용은 $1 + 1 + 0 = 2$ 로 최소가 됩니다.
2. 가운데 $9$ 와 $8$ 제거 (비용: $|9-8|=1$) $\to$ 남은 수열: $(6, 6)$
3. 마지막 $6$ 과 $6$ 제거 (비용: $|6-6|=0$)
총 비용은 $1 + 1 + 0 = 2$ 로 최소가 됩니다.