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

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

작업

면접 대비

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

요약
작업 의존 관계를 나타내는 DAG가 주어질 때, 작업 X를 끝내기 전에 먼저 해야 하는 작업의 수를 구한다.
난이도

보통10점 중 4점

유형
그래프, DFS, 위상 정렬, 구현
정답자
아직 제출이 없습니다

문제

민상이는 자신이 해야 할 작업 NN개를 아래와 같이 작업 순서도로 그려보았다.

위 그림에서 5번 작업을 하기 위해서는 제일 먼저 2번 작업을 끝내야 하고, 그다음으로 4번 작업을 끝내야 5번 작업을 할 수 있다. 3번 작업은 먼저 해야 하는 작업이 없으므로 바로 시작할 수 있다.

작업 순서를 정할 때 위배되는 작업 순서는 없다. 예를 들어, A 작업을 하려면 B 작업을 먼저 해야 하고, B 작업을 하려면 A 작업을 먼저 해야 하는 상황은 없다.

민상이에게는 오늘 반드시 끝내야 하는 작업 XX가 있다. 민상이가 작업 XX를 끝내기 위해 먼저 해야 하는 작업의 개수를 구하자.

입력

첫째 줄에 민상이가 작업할 개수 NN과 작업 순서 정보의 개수 MM이 공백으로 구분되어 주어진다.

둘째 줄부터 M+1M + 1번째 줄까지 작업 AiA_i와 작업 BiB_i가 공백으로 구분되어 주어진다. 두 값의 의미는 작업 BiB_i를 하기 위해 바로 이전에 작업 AiA_i를 먼저 해야 한다는 것이다. 중복된 정보는 주어지지 않는다.

마지막 줄에는 민상이가 오늘 반드시 끝내야 하는 작업 XX가 주어진다.

출력

민상이가 작업 XX를 하기 위해 먼저 해야 하는 일의 개수를 출력한다.

제한

  • 1≤N≤100,0001 \le N \le 100,000
  • 0≤M≤min(N×(N−1)2,200000)0 \le M \le min( \frac {N×(N - 1)} {2}, 200000)
  • 1≤Ai,Bi≤N1 \le A_i, B_i \le N
  • 1≤X≤N1 \le X \le N

예제3

  1. 예제 1

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

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

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