만드는 중입니다

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

산림의 수호자

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

요약
나무 그래프에서 정점 a에서 불이 번지고 근성이 정점 b에 서 있을 때, 불이 닿기 전에 데이터를 복사할 수 있는 정점의 최대 개수를 구합니다.
난이도

보통10점 중 6점

유형
트리, DFS, 동적 계획법
정답자
아직 제출이 없습니다

문제

근성은 나무에 관심이 많다.

드루이드 근성은 나무를 관리하는 산림의 수호자이다. 근성이 관리하는 나무는 트리 형태이며, 정점이 NN개이다. 근성은 모든 정점을 소중히 여겨 11부터 NN까지의 고유한 번호를 각 정점에 매겼다.

어느 날, 근성의 나무를 늘 시기하던 악당 영도가 나무에 불을 질렀다. 근성은 나무가 완전히 타기 전에 각 정점에 저장된 데이터를 최대한 많이 복제해야 한다.

처음에 영도는 aa번 정점에 불을 질렀고, 근성은 불에 타지 않은 bb번 정점 위에 서 있다. 근성은 불에 타지 않은 정점에서 다음 행동 중 하나를 골라 수행할 수 있다.

  • 복제하기: 현재 정점에서 데이터를 복제한다. 시간은 소모되지 않는다. 단, 이미 데이터를 복제한 정점에서는 다시 복제할 수 없다.
  • 이동하기: 간선을 따라 이웃한 불에 타지 않은 정점 중 한 곳으로 이동한다.
  • 기다리기: 현재 정점에서 이동하지 않고 대기한다.

근성이 이동하거나 기다리는 동안, 불타는 정점에서 이웃한 불타지 않은 정점으로 불이 옮겨 붙는다.

근성이 다음 행동으로 불타는 정점 위에 서게 되면, 그 즉시 나무 보존 작업을 포기하고 나무에서 탈출한다. 근성이 정점에 도착하는 순간 그 정점으로 불이 옮겨 붙으면, 근성은 그 정점에서 데이터를 복제할 수 없다.

근성이 탈출하기 전까지 데이터를 복제할 수 있는 정점 개수의 최댓값을 구하여 근성에게 알려주는 것이 목표이다.

입력

첫 번째 줄에 나무의 정점 개수 NN이 주어진다.

두 번째 줄부터 N−1N-1개의 줄에 걸쳐 나무의 간선 정보 u,vu, v가 공백으로 구분되어 주어진다. 이는 uu번 정점과 vv번 정점 사이에 간선이 있다는 뜻이다.

N+1N+1번째 줄에 처음에 불타는 aa번 정점과 근성이 위치한 bb번 정점의 번호가 공백으로 구분되어 주어진다.

출력

가능한 모든 경우 중에서, 근성이 탈출하기 전까지 데이터를 복제할 수 있는 나무의 정점 개수의 최댓값을 출력한다.

제한

  • 2≤N≤100 0002 \le N \le 100\,000
  • 1≤a,b,u,v≤N1 \le a, b, u, v \le N
  • a≠ba \neq b
  • 입력으로 주어지는 모든 수는 정수이다.
  • 입력으로 주어지는 모든 나무는 올바른 트리이다.

힌트

다음 그림은 예제 입력 1에서 주어진 나무의 모습이다. 이 문제에서 나무는 트리이며, 트리는 사이클이 없는 단순 연결 그래프이다. 예제 그림 역시 사이클이 없는 단순 연결 그래프이다.

이 예제에서 근성이 복제할 수 있는 정점 데이터의 최대 개수는 3개이다. 최적의 행동 중 하나는 기다리지 않고 44(bb)→22→11 순서로 이동하면서, 매 정점마다 복제하는 것이다.

예제3

  1. 예제 1

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

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

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