만드는 중입니다

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

비가역 반응

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

요약
방향 그래프에서 각 상태의 다음 상태를 무작위로 고를 때, 시작 상태로 되돌아올 수 있는 상태 집합을 벗어나는 기대 시간을 구하거나 무한이면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
그래프, 확률, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

인생은 덧없다. 어떤 일은 되돌릴 수 없다. 이런 점에서 화학 반응 네트워크는 인생과 닮아 있다.

간결한 설명을 위해 화학 반응 네트워크를 다음과 같이 모델링한다. 화학 반응 네트워크에는 NN개의 상태가 있다. 반응은 상태 SS에서 시작한다. MM개의 서로 다른 상태 쌍 (uiu_i, viv_i)에는 uiu_i에서 viv_i로 전이할 수 있다는 관계가 있다. 각 시간 단위마다, 현재 상태에서 전이할 수 있는 상태가 하나라도 있으면 다른 상태로 전이한다. 그런 상태가 없으면 현재 상태는 변하지 않는다. 현재 상태에서 전이할 수 있는 상태가 둘 이상이면, 다음 상태는 그중에서 균등한 확률로 선택된다.

화학 반응 네트워크 실험에서는 현재 상태가 변하지 않을 때 실험을 중단한다. 또한, 전이를 반복하다 보면 전이를 반복해서 SS로 돌아갈 수 없는 상태에 도달할 수도 있다. 이 경우에도 실험을 중단한다. 생물정보학 연구자로서 해야 할 일은 실험이 중단될 때까지 걸리는 기대 시간을 계산하는 프로그램을 작성하는 것이다. 기대 시간이 무한이면 대신 −1-1을 출력한다.

실험 종료 조건을 더 정확히 설명하면 다음과 같다. 현재 상태에서 전이할 수 있는 상태가 없으면 즉시 실험을 중단한다. 그렇지 않고, 전이를 0번 이상 반복해서 현재 상태에서 SS로 돌아갈 수 있으면 실험을 중단하지 않는다. 즉, 이 경우 상태 SS 자체는 항상 SS로 돌아갈 수 있는 상태로 간주한다.

입력

입력은 아래 형식의 단일 테스트 케이스로 이루어진다.

NN MM SS

u1u_1 v1v_1

⋮\vdots

uMu_M vMv_M

첫째 줄에는 세 정수 NN (2≤N≤2002 \le N \le 200), MM (1≤M≤min⁡(N(N−1)1000)1 \le M \le \min{(N(N-1)1000)}), SS (1≤S≤N1 \le S \le N)가 주어진다. NN은 화학 반응 네트워크의 상태 수다. MM은 상태 간 전이의 수다. SS는 초기 상태다. 다음 MM개의 줄 중 ii번째 줄은 ii번째 전이를 나타내며, 상태 uiu_i에서 viv_i로 전이할 수 있다는 뜻이다 (1≤ui,vi≤N1 \le u_i, v_i \le N, ui≠viu_i \ne v_i). viv_i에서 uiu_i로 전이할 수 있다는 뜻은 아니다. 쌍 uiu_i와 viv_i는 서로 다르다는 것이 보장된다. 즉, 1≤i<j≤M1 \le i < j \le M에 대해 ui≠uju_i \ne u_j이거나 vi≠vjv_i \ne v_j이다.

출력

초기 상태 SS로 돌아갈 수 없는 상태 중 하나에 도달할 때까지 걸리는 기대 시간을 출력한다. 기대 시간은 매우 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다. 더 정확히는, 기대 시간이 유한하면 기약분수 b/ab/a로 나타낼 수 있고, ax≡b mod 109+7ax \equiv b \bmod {10^9 + 7}을 만족하는 최소 음이 아닌 정수 xx를 출력해야 한다. 주어진 입력에 대해 그러한 xx가 존재한다고 가정해도 된다.

기대 시간이 무한이면 대신 −1-1을 출력한다.

예제5

  1. 예제 1

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

    입력
    5 7 1
    1 2
    2 1
    2 3
    3 1
    3 4
    4 1
    4 5
    
    예상 출력
    22
    
  3. 예제 3

    입력
    10 17 5
    4 6
    8 10
    5 8
    7 3
    8 3
    3 5
    9 6
    4 8
    3 2
    6 1
    3 7
    2 10
    2 8
    10 2
    2 9
    8 6
    5 4
    
    예상 출력
    800000011
    
  4. 예제 4

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

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