파일 업로드

숨바꼭질

profile
실행 시간 제한메모리 제한
1 초128 MB
📃 해결할 문제

메타버스 게임을 즐기는 태승이는 가상 현실에서 고등학교 영어 교사이자, 3학년 1반 담임입니다. 야간 자율학습 감독인 그는 자신의 반 학생들이 열심히 공부하고 있는지 확인하러 왔지만, 그의 반 제자들은 모두 도망갔습니다.

가상 현실 속 태승이의 학교는 N (1 <= N <= 200,000) 개의 반으로 이뤄져 있으며 1부터 N까지의 번호가 붙어 있습니다. 이러한 반들은 N - 1개의 양방향 경로로 연결되어 있습니다. 1반은 1번이며, 여기에서 모든 반으로 갈 수 있습니다.

태승이의 학생들은 아침에 1반에 있었지만, 지금은 어디로 갔는지 알 수 없습니다. 태승이는 학생들이 1반에서 도망가고, 거리 L 이상은 너무 게으르기 때문에 달리지 않는다는 것을 알고 있습니다. 모든 학생들에 대해, 태승이는 1반에서 도망간 학생들이 얼마나 많은 다른 반에 숨어있는지 알려주세요.

참고: 거릿값을 저장하기 위해서는 64비트 정수 (Pascal에서는 int 64, C/C++에서는 long long, Java에서는 long)가 필요합니다.

💻 입력
  • 1번째 줄 : 2 개의 정수, N과 L (1 <= N <= 200,000, 1 <= L <= 10^18)
  • 2번째 줄 ..N번째 줄 : i번째 줄은 두 개의 정수 p_i와 l_i를 포함합니다. p_i (1 <= p_i < i)는 반 i와 1반 사이의 최단 경로에서 첫 번째 반이며, l_i (1 <= l_i <= 10^12)는 그 경로의 길이입니다.
🖨️ 출력
  • 1번째 줄..N번째 줄: 줄 당 한 번호, 줄 i의 번호는 1반에서 점점 더 멀어지는 길을 따라 가고 길이의 총합이 L을 초과하지 않으며, 반 i에서 도달할 수 있는 반의 수입니다.

💻 예제 입력 1
4 5
1 4
2 3
1 5
🖨️ 예제 출력 1
3
2
1
1

출처: USACO 2012 December Contest, Gold Problem 3. Running Away From the Barn