열쇠
시간 제한2초메모리 제한2048 MB
방마다 키가 하나씩 있고 통로마다 필요한 키 종류가 정해져 있을 때, 도달할 수 있는 방의 수가 가장 적은 시작 방의 번호를 구합니다.
문제
건축가 티모시가 새로운 탈출 게임을 설계했다. 이 게임에는 0번부터 번까지 번호가 붙은 개의 방이 있다. 처음에 각 방에는 열쇠가 정확히 하나씩 들어 있다. 각 열쇠에는 0 이상 이하의 정수인 종류가 있다. 번 방의 열쇠 종류는 이다. 여러 방에 같은 종류의 열쇠가 있을 수 있으므로 값 가 서로 다르다고 보장되지는 않는다.
양방향 통로가 개 있으며 번호는 0번부터 번까지이다. 통로 ()는 서로 다른 두 방 와 를 잇는다. 같은 두 방을 여러 통로로 이어도 된다.
플레이어는 혼자서 열쇠를 모으고 통로를 따라 방 사이를 이동한다. 플레이어가 에서 로, 또는 에서 로 이동하면 통로 를 지나는 것이다. 통로 는 종류 인 열쇠를 이미 모은 뒤에만 지날 수 있다. 플레이어는 모은 열쇠를 버리지 않는다.
플레이어는 어떤 방 에 있을 때 다음 두 가지 행동을 할 수 있다.
- 방 의 열쇠(종류 )를 모은다. 이미 모은 열쇠라면 다시 모을 필요는 없다.
- 또는 인 통로 를 지난다. 이때 종류 인 열쇠를 이미 모아 두었어야 한다.
플레이어는 열쇠가 없는 상태로 방 에서 출발한다. 방 에서 출발한 플레이어가 위의 행동을 순서대로 수행해 방 에 도달할 수 있으면, 방 는 방 에서 도달 가능하다.
각 방 ()에 대해 를 방 에서 도달 가능한 방의 개수라고 하자. 티모시는 범위에서 가 최솟값을 갖는 인덱스 들의 집합을 알고 싶어 한다.
제한
- 모든 에 대해
- 모든 에 대해 이고
- 모든 에 대해