만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

열쇠

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

요약
방마다 키가 하나씩 있고 통로마다 필요한 키 종류가 정해져 있을 때, 도달할 수 있는 방의 수가 가장 적은 시작 방의 번호를 구합니다.
난이도

보통10점 중 7점

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

문제

건축가 티모시가 새로운 탈출 게임을 설계했다. 이 게임에는 0번부터 n−1n - 1번까지 번호가 붙은 nn개의 방이 있다. 처음에 각 방에는 열쇠가 정확히 하나씩 들어 있다. 각 열쇠에는 0 이상 n−1n - 1 이하의 정수인 종류가 있다. ii번 방의 열쇠 종류는 r[i]r[i]이다. 여러 방에 같은 종류의 열쇠가 있을 수 있으므로 값 r[i]r[i]가 서로 다르다고 보장되지는 않는다.

양방향 통로가 mm개 있으며 번호는 0번부터 m−1m - 1번까지이다. 통로 jj(0≤j≤m−10 \le j \le m - 1)는 서로 다른 두 방 u[j]u[j]와 v[j]v[j]를 잇는다. 같은 두 방을 여러 통로로 이어도 된다.

플레이어는 혼자서 열쇠를 모으고 통로를 따라 방 사이를 이동한다. 플레이어가 u[j]u[j]에서 v[j]v[j]로, 또는 v[j]v[j]에서 u[j]u[j]로 이동하면 통로 jj를 지나는 것이다. 통로 jj는 종류 c[j]c[j]인 열쇠를 이미 모은 뒤에만 지날 수 있다. 플레이어는 모은 열쇠를 버리지 않는다.

플레이어는 어떤 방 xx에 있을 때 다음 두 가지 행동을 할 수 있다.

  • 방 xx의 열쇠(종류 r[x]r[x])를 모은다. 이미 모은 열쇠라면 다시 모을 필요는 없다.
  • u[j]=xu[j] = x 또는 v[j]=xv[j] = x인 통로 jj를 지난다. 이때 종류 c[j]c[j]인 열쇠를 이미 모아 두었어야 한다.

플레이어는 열쇠가 없는 상태로 방 ss에서 출발한다. 방 ss에서 출발한 플레이어가 위의 행동을 순서대로 수행해 방 tt에 도달할 수 있으면, 방 tt는 방 ss에서 도달 가능하다.

각 방 ii(0≤i≤n−10 \le i \le n - 1)에 대해 p[i]p[i]를 방 ii에서 도달 가능한 방의 개수라고 하자. 티모시는 0≤i≤n−10 \le i \le n - 1 범위에서 p[i]p[i]가 최솟값을 갖는 인덱스 ii들의 집합을 알고 싶어 한다.

제한

  • 2≤n≤300 0002 \le n \le 300\,000
  • 1≤m≤300 0001 \le m \le 300\,000
  • 모든 0≤i≤n−10 \le i \le n - 1에 대해 0≤r[i]≤n−10 \le r[i] \le n - 1
  • 모든 0≤j≤m−10 \le j \le m - 1에 대해 0≤u[j],v[j]≤n−10 \le u[j], v[j] \le n - 1이고 u[j]≠v[j]u[j] \ne v[j]
  • 모든 0≤j≤m−10 \le j \le m - 1에 대해 0≤c[j]≤n−10 \le c[j] \le n - 1

예제1

  1. 예제 1

    입력
    2 1
    0 1
    0 1 0
    
    예상 출력
    1
    1