링크

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

요약
각 페이지가 정확히 하나의 링크를 가지는 그래프에서, 홈페이지에서 모든 페이지까지 K번 이하의 링크로 도달하도록 만들 때 추가해야 할 최소 링크 수를 구합니다.
난이도

보통10점 중 7점

유형
그래프, 그리디, DFS
정답자
아직 제출이 없습니다

문제

학교 웹사이트를 정리하려고 한다. 웹사이트에는 11번부터 NN번까지 번호가 매겨진 NN개의 페이지가 있으며, 홈페이지는 11번 페이지이다. 내용은 문제가 없지만 링크 구조가 좋지 않다. 모든 페이지에는 정확히 하나의 링크가 있고, 그 링크는 자기 자신이 아닌 다른 페이지를 가리킨다. 그래서 홈페이지에서 출발한 방문자가 원하는 페이지에 도달하려면 링크를 여러 번 따라가야 하는 경우가 많고, 홈페이지에서 아예 도달할 수 없는 페이지도 있을 수 있다.

이를 해결하기 위해 새 링크를 어디에나 추가할 수 있다. 즉, 어떤 페이지에든 새 링크를 만들 수 있고 그 링크는 임의의 페이지를 가리킬 수 있다. 정수 KK에 대해, 홈페이지를 제외한 모든 페이지를 홈페이지에서 링크를 최대 KK번 따라가서 도달할 수 있으면 그 웹사이트를 KK-도달 가능하다고 한다.

웹사이트의 구조와 정수 KK가 주어질 때, 웹사이트를 KK-도달 가능하게 만들기 위해 추가해야 하는 링크의 최소 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 두 정수 NN과 KK가 주어진다 (2≤N≤500 0002 \le N \le 500\,000, 1≤K≤20 0001 \le K \le 20\,000). 각각 페이지의 수와 방문자가 따라갈 수 있는 링크의 최대 횟수이다.

다음 NN개의 줄에는 서로 다른 두 정수 AA와 BB가 주어진다 (1≤A,B≤N1 \le A, B \le N). 이는 AA번 페이지의 링크가 BB번 페이지를 가리킨다는 뜻이다.

출력

웹사이트를 KK-도달 가능하게 만들기 위해 추가해야 하는 링크의 최소 개수를 한 줄에 출력한다.

예제2

  1. 예제 1

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

    입력
    14 4
    1 2
    2 3
    3 4
    4 5
    7 5
    5 6
    6 3
    8 10
    10 9
    9 8
    14 13
    13 12
    12 11
    11 14
    
    예상 출력
    3