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

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

사무실 이전

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

요약
가중 트리에서 각 자식을 가진 정점마다 그 아래 잎의 최솟값을 최솟값끼리, 최댓값끼리 골라 더한 값의 최솟값을 구합니다.
난이도

어려움10점 중 8점

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

문제

SNUPC(SNU Printing Company)는 서울대학교 컴퓨터공학부 학생들의 자료 인쇄를 맡는 대기업이다. 최근 SNUPC의 사장 ntopia는 사무실이 301동에 있어 출근이 불편하다는 사원들의 의견을 받아들여 사무실을 지하철역 주변으로 옮기기로 했다.

서울 지하철에는 NN개의 역이 있고, SNUPC의 직원들은 그중 서로 다른 MM개의 역 근처에 한 명씩 살고 있다. 지하철의 모든 역은 트리 구조로 연결되어 있어, 임의의 역에서 출발해 다른 모든 역으로 가는 경로가 유일하게 존재한다. 또한 모든 인접한 역 사이의 거리는 1로 같다. 직원들은 출근 경로의 거리의 제곱에 비례하여 스트레스를 받기 때문에, 출근 경로의 길이가 어떻게 바뀔지는 중요한 정보이다.

ntopia는 KK개의 역 중 한 곳으로 사무실을 옮기기로 했으나, 오랜 시간 동안 결정을 하지 못했다. 그래서 ntopia는 대신 모든 후보에 대해 전 직원이 출근하는 경로의 길이의 제곱의 평균을 계산해서 미리 공지해 주기로 했다.

가능한 모든 사무실 후보에 대해 모든 직원의 출근 경로의 길이의 제곱을 모두 합한 값을 구하여라. 모든 직원은 가능한 가장 짧은 경로로 출근한다.

입력

첫 번째 줄에 지하철역의 개수 NN(1≤N≤300,0001 \le N \le 300{,}000)이 주어진다. 이는 1번부터 NN번까지의 번호가 붙은 NN개의 역이 있음을 의미한다.

이후 N−1N-1개의 줄에 걸쳐 서로 인접한 지하철역의 정보가 주어진다. 각 줄에 두 정수 aa, bb(1≤a,b≤N1 \le a, b \le N, a≠ba \ne b)가 주어지며, 이는 aa번 역과 bb번 역이 서로 인접해 있음을 의미한다. 주어지는 정보는 트리 구조임이 보장된다.

그다음 줄에 직원들이 사는 지하철역의 수 MM(1≤M≤N1 \le M \le N)이 주어진다. 그다음 줄에 MM개의 서로 다른 지하철역의 번호가 공백을 사이에 두고 주어진다.

그다음 줄에 사무실을 옮기려는 후보 지하철역의 수 KK(1≤K≤N1 \le K \le N)가 주어진다. 그다음 줄에 KK개의 서로 다른 지하철역의 번호가 공백을 사이에 두고 주어진다.

출력

첫 번째 줄에 모든 사무실 후보에 대한 모든 직원의 출근 경로 길이의 제곱을 모두 합한 값을 998,244,353으로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    5
    1 2
    1 3
    3 4
    3 5
    2
    1 4
    2
    2 3
    
    예상 출력
    12
  2. 예제 2

    입력
    9
    1 2
    2 3
    2 6
    3 4
    4 5
    6 7
    6 8
    6 9
    4
    3 5 7 8
    3
    6 8 9
    
    예상 출력
    102