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

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

웜홀 정렬

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

요약
소들이 위치 순열에 따라 흩어져 있고 너비가 있는 웜홀로 자리를 바꿀 수 있을 때, 모든 소를 제자리에 보내기 위해 써야 하는 웜홀 중 최소 너비를 최대화한다.
난이도

보통10점 중 7점

유형
유니온 파인드, 그래프, 정렬, DFS
정답자
아직 제출이 없습니다

문제

Farmer John의 소들은 매일 아침 헛간을 떠나기 전에 스스로 줄을 정렬하라는 요청에 지쳤다. 소들은 방금 양자물리학 박사 학위를 받았고, 이 일을 좀 더 빠르게 처리할 준비가 되어 있다.

오늘 아침에도 여느 때처럼 Farmer John의 NN마리 소(1≤N≤1051 \leq N \leq 10^5)가 1…N1 \dots N으로 번호가 붙은 헛간의 NN개의 서로 다른 위치에 흩어져 있으며, 소 ii는 위치 p_ip\_i에 있다. 그런데 오늘 아침에는 MM개의 웜홀(1≤M≤1051 \leq M \leq 10^5)도 있고, 1…M1 \dots M으로 번호가 붙는다. 웜홀 ii는 위치 a_ia\_i와 b_ib\_i를 양방향으로 연결하며 폭은 w_iw\_i이다(1≤a_i,b_i≤N,a_i≠b_i,1≤w_i≤1091\le a\_i,b\_i\le N, a\_i\neq b\_i, 1\le w\_i\le 10^9).

언제든지 웜홀의 양 끝에 있는 두 소는 웜홀을 통해 동시에 자리를 바꿀 수 있다. 소들은 1≤i≤N1 \leq i \leq N에 대해 소 ii가 위치 ii에 올 때까지 이런 교환을 수행해야 한다.

소들은 웜홀에 눌려 납작해지고 싶지 않다. 소들이 정렬을 마치기 위해 반드시 사용해야 하는 웜홀 중 가장 좁은 웜홀의 폭을 최대화하도록 도와주자. 소들이 스스로 정렬할 수 있음은 보장된다.

입력

첫째 줄에 정수 NN과 MM이 주어진다.

둘째 줄에 NN개의 정수 p_1,p_2,…,p_Np\_1, p\_2, \dots, p\_N이 주어진다. pp는 1…N1\ldots N의 순열임이 보장된다.

11과 MM 사이의 각 ii에 대해 i+2i+2번째 줄에 정수 a_ia\_i, b_ib\_i, w_iw\_i가 주어진다.

출력

정렬 과정에서 소가 몸을 구겨 넣어야 하는 웜홀 폭의 최솟값 중 최댓값을 하나의 정수로 출력한다. 소들이 정렬하는 데 웜홀이 전혀 필요 없다면 −1-1을 출력한다.

예제2

  1. 예제 1

    입력
    4 4
    3 2 1 4
    1 2 9
    1 3 7
    2 3 10
    2 4 3
    
    예상 출력
    9
    
  2. 예제 2

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