[BOJ 28707] 배열 정렬
View as PDF
Submit solution
Points:
3
Time limit:
1.0s
Memory limit:
1G
Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
길이가 $N$인 양의 정수로 이루어진 배열 $A = [A_1, A_2, \cdots, A_N]$이 주어집니다. 이 배열을 비내림차순, 즉, $A_1 \le A_2 \le \cdots \le A_N$이 되도록 정렬하기 위해서 다음과 같은 $M$가지 조작을 순서와 횟수에 상관 없이 원하는 만큼 할 수 있습니다.
- $A$의 $l_i$번째 수와 $r_i$번째 수를 바꿉니다. 비용은 $c_i$가 듭니다. $(1 \le i \le M)$
$A$를 비내림차순으로 정렬하기 위해 필요한 비용 총합의 최솟값을 출력하세요.
입력 형식
첫 줄에 배열 $A$의 길이 $N$이 주어집니다. $(2 \le N \le 8)$
둘째 줄에 $A$의 각 원소 $A_1, \cdots, A_N$이 공백으로 구분되어 주어집니다. $(1 \le A_i \le 10)$
셋째 줄에 조작의 개수 $M$이 주어집니다. $(1 \le M \le 10)$
다음 $M$개의 줄의 $i$번째 줄에 조작을 의미하는 세 개의 정수 $l_i, r_i, c_i$가 공백으로 구분되어 주어집니다. $(1 \le l_i < r_i \le N;$ $1 \le c_i \le 10)$
출력 형식
첫 줄에 배열 $A$를 비내림차순으로 정렬하기 위해 필요한 비용 총합의 최솟값을 출력하세요. 단, 배열을 비내림차순으로 만드는 것이 불가능한 경우 대신 $-1$을 출력하세요.
예제 입력 1
4
1 4 3 2
4
1 2 4
2 3 3
3 4 2
1 4 10
예제 출력 1
7
예제 입력 2
4
1 3 1 3
6
1 2 3
1 3 3
1 4 3
2 3 3
2 4 1
3 4 1
예제 출력 2
2
예제 입력 3
5
5 4 3 2 1
2
1 2 5
3 4 3
예제 출력 3
-1
Comments