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

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

연결이 되느냐, 안 되느냐, 그것이 문제로다

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

요약
각 노드에 값이 있는 무방향 그래프에서, 저값 노드와 고값 노드를 잇는 새 간선을 노드당 최대 하나씩 추가해 그래프를 연결할 수 있게 하는 최소 임계값을 구한다.
난이도

어려움10점 중 8점

유형
그래프, 유니온 파인드, 이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

무방향 그래프가 주어지고, 각 노드에는 양의 정수 값이 하나씩 대응된다. 어떤 임계값이 주어지면 그래프의 노드는 두 그룹으로 나뉜다. 한 그룹은 값이 임계값 이하인 노드로, 다른 그룹은 나머지 노드로 이루어진다. 이제 서로 다른 그룹에 속한 두 노드를 잇는 간선을 모두 제거해서 얻은 부분 그래프를 생각하자. 두 노드 그룹이 모두 비어 있지 않다면, 주어진 그래프가 연결되어 있든 아니든 이 부분 그래프는 연결되어 있지 않다.

그다음 부분 그래프를 연결 상태로 만들기 위해 새 간선을 여러 개 추가하는데, 이 간선들은 서로 다른 그룹의 노드를 연결해야 하고 각 노드는 새 간선과 최대 한 번만 만날 수 있다. 두 그룹 중 어느 쪽도 비어 있지 않고 새 간선을 몇 개 추가해서 부분 그래프를 연결 상태로 만들 수 있으면 그 임계값을 실현 가능하다고 한다.

최소 실현 가능 임계값을 구하시오.

입력

입력은 다음과 같은 형식의 테스트 케이스 하나로 이루어진다.

n m
l1 . . . ln
x1 y1
.
.
.
xm ym

첫째 줄에는 그래프의 노드 수와 간선 수를 나타내는 두 정수 n (2 ≤ n ≤ 105)과 m (0 ≤ m ≤ min(105, n(n−1)/2))이 주어진다. 노드에는 1부터 n까지 번호가 붙는다. 둘째 줄에는 n개의 정수 li (1 ≤ li ≤ 109)가 주어지는데, 노드 i에 대응하는 값이 li라는 뜻이다. 이어지는 m개의 줄에는 각각 두 정수 xj와 yj (1 ≤ xj < yj ≤ n)가 주어지는데, 노드 xj와 yj를 잇는 간선이 있다는 뜻이다. 두 노드 사이에는 간선이 최대 하나만 존재한다.

출력

최소 실현 가능 임계값을 출력한다. 실현 가능한 임계값이 하나도 없으면 -1을 출력한다.

예제5

  1. 예제 1

    입력
    4 2
    10 20 30 40
    1 2
    3 4
    
    예상 출력
    20
    
  2. 예제 2

    입력
    2 1
    3 5
    1 2
    
    예상 출력
    3
    
  3. 예제 3

    입력
    3 0
    9 2 8
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    4 6
    5 5 5 5
    1 2
    1 3
    1 4
    2 3
    2 4
    3 4
    
    예상 출력
    -1
    
  5. 예제 5

    입력
    7 6
    3 1 4 1 5 9 2
    2 3
    3 5
    5 6
    1 4
    1 7
    4 7
    
    예상 출력
    2