아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

특수 얼음깨기 펭귄

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

요약
일부 정점이 지지대인 트리에서 펭귄이 있는 정점이 깨지지 않은 일반 정점을 거쳐 지지대 두 개 이상과 연결되도록 유지하면서 최대로 깰 수 있는 정점 수를 구한다.
난이도

어려움10점 중 8점

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

문제

도도는 심심해서 보드게임 카페에 갔다. 마침 평소에 즐겨 했던 얼음 깨기 펭귄의 업그레이드 버전인 특수 얼음 깨기 펭귄 보드게임이 나와 직접 플레이해 보기로 했다. 특수 얼음 깨기 펭귄 게임에는 특수 안경이 있어서, 특수 안경을 끼고 얼음을 보면 얼음 사이의 연결 관계가 보인다.

특수 얼음 깨기 펭귄 게임에 나오는 얼음은 지지대 역할을 하는 얼음과 일반 얼음, 두 가지다. 지지대 역할을 하는 얼음은 빨간색으로 구분되어 보이며 일반 얼음을 지탱해서 일반 얼음이 깨지지 않게 해 준다. 일반 얼음은 지지대가 하나만 연결되어 있어도 깨지지 않지만, 펭귄이 올라가 있는 얼음은 지지대 역할을 하는 얼음이 2개 이상 연결되어 있어야만 깨지지 않는다. 이때 지지대가 연결되어 있다는 것은 지지대로부터 서로 다른 일반 얼음들을 거쳐 연결 관계가 이어져 있다는 뜻이다. 특수 얼음 깨기 펭귄 게임에서 도도가 펭귄을 떨어뜨리지 않고 깰 수 있는 얼음은 최대 몇 개일까?

입력

첫째 줄에 얼음 블록의 개수 NN(3≤N≤328 0003 \leq N \leq 328\,000)과 지지대 역할을 하게 되는 얼음의 개수 SS(2≤S≤N−12 \leq S \leq N-1), 펭귄이 위치한 얼음 블록의 번호 PP(S<P≤NS < P \leq N)가 주어진다. 지지대 역할을 하게 되는 얼음의 개수가 SS일 때, 11번부터 SS번까지의 얼음이 지지대 역할을 한다.

둘째 줄부터 N−1N-1개의 줄에 두 정수 AA, BB가 주어진다. 이는 AA번 얼음과 BB번 얼음이 연결되어 있음을 의미하며, 같은 연결은 여러 번 주어지지 않는다.

게임 시작 시 펭귄은 일반 얼음 위에 위치해 있고 어떤 얼음도 깨지지 않은 상태로 시작한다. 각 얼음에는 11번부터 NN번까지 정수 번호가 붙어 있으며 서로 다른 두 얼음을 잇는 경로는 하나뿐이다. 또한 서로 다른 지지대가 펭귄이 올라가 있는 얼음을 거치지 않고 연결되어 있는 경우는 없다.

출력

플레이어가 펭귄을 떨어뜨리지 않고 깰 수 있는 얼음의 최대 개수를 구하여라. 지지대 역할을 하는 얼음도 깰 수 있는 얼음에 포함된다.

예제1

  1. 예제 1

    입력
    21 6 12
    1 9
    1 10
    10 12
    2 13
    13 11
    11 12
    3 8
    8 7
    8 12
    5 19
    5 14
    14 12
    6 20
    6 21
    20 15
    15 12
    4 18
    4 17
    17 16
    16 12
    
    예상 출력
    16