파일 업로드

웜홀 정렬

profile
실행 시간 제한메모리 제한
2 초512 MB
📃 해결할 문제

현주의 NN마리의 강아지들(1N1051 \leq N \leq 10^5)이 편리하게 1N1 \dots N의 번호가 매겨져 집 안 어딘가에 흩어져 있습니다. 각각의 위치에도 1N1 \dots N의 번호가 매겨져 있어서 "강아지 ii는 위치 pip_i에 있습니다."라고 표현할 수 있습니다. 

또한 MM 개의 웜홀 (1M1051 \leq M \leq 10^5)이 있으며, 웜홀도 1M1 \dots M의 번호가 매겨져 있습니다. 여기서 웜홀 ii는 위치 aia_i와 위치 bib_i를 양방향으로 연결하며, 폭이 wiw_i입니다 (1ai,biN,aieqbi,1wi1091 \le a_i,b_i \le N, a_i eq b_i, 1 \le w_i \le 10^9).

두 강아지가 웜홀의 양끝에 위치해서 동시에 웜홀을 통해 위치를 바꿀 수 있습니다. 강아지들은 강아지 ii1iN1 \leq i \leq N의 위치에 있을 때까지 이러한 교환이 계속 이루어져야 합니다.

강아지들은 웜홀로 들어갈 기미가 보이지 않습니다. 강아지들이 스스로 정렬하는 데 사용해야 하는 최소 너비의 웜홀의 너비를 최대화하도록 도와주세요. 

강아지들이 스스로 정렬하는 것이 가능하다는 것이 보장됩니다.

💻 입력

첫 번째 줄에는 두 개의 정수, NNMM이 포함되어 있습니다.

두 번째 줄에는 NN개의 정수 p1,p2,,pNp_1, p_2, \dots, p_N이 포함되어 있습니다. pp1N.1 \ldots N.의 순열임이 보장됩니다.

1부터 MM까지의 ii에 대해, i+2i+2번째 줄에는 정수 aia_i, bib_i, 그리고 wiw_i가 포함되어 있습니다.

🖨️ 출력

하나의 정수 : 강아지가 정렬 과정 중 최소한으로 웜홀의 폭을 최대화합니다. 

강아지들이 자신들을 정렬하는 데 웜홀이 필요하지 않은 경우, 1-1을 출력합니다.


💻 예제 입력 1
4 4
3 2 1 4
1 2 9
1 3 7
2 3 10
2 4 3
🖨️ 예제 출력 1
9
💻 예제 입력 2
4 1
1 2 3 4
4 2 13
🖨️ 예제 출력 2
-1

💡 힌트

강아지들을 최소 폭 9 이상의 웜홀만 사용하여 정렬하는 방법은 다양합니다:

  • 강아지 1과 강아지 2는 세 번째 웜홀을 사용하여 위치를 교환한다.
  • 강아지 1과 강아지 3은 첫 번째 웜홀을 사용하여 위치를 교환한다.
  • 강아지 2와 강아지 3은 세 번째 웜홀을 사용하여 위치를 교환한다.

 

샘플 입력:

4 1 1 2 3 4 4 2 13

샘플 출력:

-1

강아지들이 자신들을 정렬하는 데 웜홀이 필요 없습니다.


출처: USACO 2020 January Contest, Silver Problem 3. Wormhole Sort