도달 가능하다는 것을 역으로 생각해 보자. 전체 그래프는 트리이므로 한 정점에서 다른 정점으로 가는 모든 경로는 유일하다. 따라서 u -> v인 유향 간선일 경우 v를 포함하는 컴포넌트에 속하는 정점들은 절대 루트가 될 수 없다. 이러한 정점들을 제거하며 후보군을 축소한다고 생각해 보자. 이제 유향 간선(u -> v)이 있을 때마다 u를 포함하는 컴포넌트의 모든 정점에 1을 더할 것이다. 모든 간선을 탐색하며 값들을 업데이트 했을 때, 정점에 더해진 값이 n - 1일 경우 모든 간선에서 그 점을 가능한 후보군으로 채택했을 것이다. 즉, 모든 정점으로 이동하는 것이 가능하다. 이러한 점들의 개수를 세어 주면 된다.
먼저, 트리의 범위에 연산을 적용할 것이므로, 트리의 방향성을 무시하고 ETT를 이용해 선형으로 만들자. 범위에 적용하는 연산이 있기 때문에 lazy propagation이 필요할 것이다. 또, 최댓값의 개수를 세어야 하므로 최댓값과 그 개수를 카운트하는 세그먼트 트리를 만들면 문제를 해결할 수 있다.