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

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

배열 정렬

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

요약
배열과 각각 비용이 있는 교환 연산들이 주어질 때, 배열을 비내림차순으로 정렬하는 최소 비용을 구하고 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
그래프, 최단 경로, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

길이가 NN인 양의 정수로 이루어진 배열 A=\[A_1,A_2,⋯ ,A_N]A = \[A\_1, A\_2, \cdots, A\_N]이 주어집니다. 이 배열을 비내림차순, 즉, A_1≤A_2≤⋯≤A_NA\_1 \le A\_2 \le \cdots \le A\_N이 되도록 정렬하기 위해서 다음과 같은 MM가지 조작을 순서와 횟수에 상관 없이 원하는 만큼 할 수 있습니다.

  • AA의 l_il\_i번째 수와 r_ir\_i번째 수를 바꿉니다. 비용은 c_ic\_i가 듭니다. (1≤i≤M)(1 \le i \le M)

AA를 비내림차순으로 정렬하기 위해 필요한 비용 총합의 최솟값을 출력하세요.

입력

첫 줄에 배열 AA의 길이 NN이 주어집니다. (2≤N≤8)(2 \le N \le 8)

둘째 줄에 AA의 각 원소 A_1,⋯ ,A_NA\_1, \cdots, A\_N이 공백으로 구분되어 주어집니다. (1≤A_i≤10)(1 \le A\_i \le 10)

셋째 줄에 조작의 개수 MM이 주어집니다. (1≤M≤10)(1 \le M \le 10)

다음 MM개의 줄의 ii번째 줄에 조작을 의미하는 세 개의 정수 l_i,r_i,c_il\_i, r\_i, c\_i가 공백으로 구분되어 주어집니다. (1≤l_i<r_i≤N;(1 \le l\_i < r\_i \le N; 1≤c_i≤10)1 \le c\_i \le 10)

출력

첫 줄에 배열 AA를 비내림차순으로 정렬하기 위해 필요한 비용 총합의 최솟값을 출력하세요. 단, 배열을 비내림차순으로 만드는 것이 불가능한 경우 대신 −1-1을 출력하세요.

예제3

  1. 예제 1

    입력
    4
    1 4 3 2
    4
    1 2 4
    2 3 3
    3 4 2
    1 4 10
    
    예상 출력
    7
    
  2. 예제 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
    
  3. 예제 3

    입력
    5
    5 4 3 2 1
    2
    1 2 5
    3 4 3
    
    예상 출력
    -1