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

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

도둑들

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

요약
K개의 도둑맞은 도시가 있는 트리에서, 도시를 막는 비용 a_i를 지불해 도둑이 도달 가능한 도시 집합을 줄이고, 막는 비용과 도시당 M의 수색 비용 합을 최소화한다.
난이도

어려움10점 중 8점

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

문제

어떤 나라에 NN개의 도시가 있고 11번부터 NN번까지 번호가 매겨져 있습니다. 도시들은 N−1N-1개의 도로로 연결되어 있으며, 임의의 도시에서 다른 어떤 도시로 가는 경로가 항상 유일합니다. 즉, 도시와 도로는 하나의 트리를 이룹니다.

도둑 무리가 서로 다른 KK개 도시의 상점을 동시에 털었습니다. 범행 직후라 도둑들은 아직 다른 도시로 달아나지 못했지만, 앞으로 도로를 따라 얼마든지 이동할 수 있다고 가정합니다.

이를 알고 있는 경찰은 일부 도시의 진입로를 막을 수 있습니다. 어떤 도시의 진입로를 모두 막으면 도둑은 더 이상 그 도시로 들어올 수 없습니다. 다만 도시에서 나가는 것은 막을 수 없습니다. 진입로를 막은 뒤, 경찰은 도둑이 있을 수 있는 모든 도시를 수색합니다.

어떤 도시에 도둑이 있을 수 있다는 것은, 상점이 털린 KK개 도시 중 하나에서 출발하여 진입로가 막히지 않은 도시들만 거쳐 그 도시에 도달할 수 있다는 뜻입니다. 상점이 털린 도시에는 이미 도둑이 있으므로, 그 도시들은 언제나 수색해야 합니다.

경찰의 예산은 한정되어 있습니다. 한 도시를 수색하는 데는 MM의 비용이 들고, ii번 도시로 들어오는 모든 도로를 막는 데는 aia_i의 비용이 듭니다. 경찰은 전체 작전의 비용이 최소가 되도록 진입로를 막을 도시들을 고르려고 합니다.

수색 작전에 드는 최소 비용을 구하세요.

입력

첫째 줄에 세 정수 NN, KK, MM이 주어집니다. 각각 도시의 수, 상점이 털린 도시의 수, 한 도시를 수색하는 비용입니다.

이어지는 N−1N-1개의 줄에는 각각 공백으로 구분된 두 정수 bib_i와 cic_i가 주어집니다. ii번째 도로가 잇는 두 도시의 번호입니다.

그다음 줄에는 NN개의 정수가 주어집니다. ii번째 정수 aia_i는 ii번 도시의 진입로를 모두 막는 비용입니다.

마지막 줄에는 서로 다른 KK개의 정수가 주어집니다. 상점이 털린 도시들의 번호입니다.

출력

수색 작전에 드는 최소 비용을 정수 하나로 출력하세요.

제한

  • 3≤N≤5000003 \le N \le 500000
  • 1≤bi,ci≤N1 \le b_i, c_i \le N
  • 1≤K≤N1 \le K \le N
  • 1≤M≤10000001 \le M \le 1000000
  • 1≤ai≤10000001 \le a_i \le 1000000

예제1

  1. 예제 1

    입력
    6 3 2
    1 2
    2 3
    2 4
    4 5
    5 6
    1 3 2 1 3 1
    1 4 6
    
    예상 출력
    11