만드는 중입니다

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

Elevated Rails

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

요약
세 개의 트리로 이루어진 역 네트워크에서 서로 다른 섬의 두 역을 골라, 간선 두 개를 추가했을 때 그 사이 경로에 들어갈 수 있는 역의 최대 개수를 구합니다.
난이도

보통10점 중 6점

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

문제

Brandon과 Geoffry는 기차를 좋아합니다. 두 사람은 nn개의 기차역을 잇는 선로망을 만드는 임무를 맡았습니다. 각 역은 세 섬 중 하나에 있으며, 각 섬에는 최소 한 개의 역이 있습니다.

Brandon은 같은 섬에 있는 역들을 연결해 두었습니다. 그 결과 같은 섬의 두 역 사이에는 같은 역을 두 번 지나지 않고 기차로 갈 수 있는 길이 정확히 하나 있습니다. 그러나 서로 다른 섬의 역끼리는 아직 기차로 갈 수 없습니다.

Geoffry는 Brandon의 선로망에 대해 여러 질문을 합니다. 각 질문은 서로 다른 섬에 있는 두 역을 고르고, Brandon이 연결을 정확히 두 개 더 추가해 모든 역이 서로 도달할 수 있게 되었을 때, 두 역 사이의 경로에 나타날 수 있는 역의 최대 개수를 묻습니다. Brandon은 신호 장치 작업으로 바빠서 섬들을 잇는 일을 생각할 여유가 없으므로, Geoffry의 질문에 답하는 일은 모두 여러분에게 맡깁니다.

입력

첫 줄에는 역의 개수 nn과 질문의 개수 qq가 주어집니다 (3≤n≤1053 \le n \le 10^5, 1≤q≤2⋅1051 \le q \le 2 \cdot 10^5).

이어지는 n−3n - 3개의 줄에는 각각 두 정수 xx와 yy가 주어집니다 (1≤x<y≤n1 \le x < y \le n). 이는 역 xx와 역 yy가 양방향으로 쓸 수 있는 선로로 연결되어 있다는 뜻입니다.

현재 선로 연결은 위의 조건을 만족합니다. 두 역이 서로 도달할 수 있는 경우는 같은 섬에 있을 때뿐이며, 같은 섬의 두 역 사이에는 어떤 역도 반복하지 않는 경로가 하나뿐입니다.

이어지는 qq개의 줄에는 각각 두 정수 aa와 bb가 주어집니다. 이는 역 aa와 역 bb 사이의 경로에 나타날 수 있는 역의 최대 개수를 묻는 질문입니다. 역 aa와 역 bb는 서로 다른 섬에 있다고 보장됩니다.

각 질문은 서로 독립적입니다.

출력

qq개의 줄을 출력합니다. 각 질문마다 한 줄에 답 하나를 출력합니다. 답은 하나의 정수이며, 역 aa와 역 bb 사이의 경로에 나타날 수 있는 역의 최대 개수입니다.

예제1

  1. 예제 1

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