만드는 중입니다

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

조작된 도로

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

요약
연결된 그래프와 신장 트리 R이 주어질 때, R만 최소 신장 트리가 되도록 1부터 E까지의 간선 가중치를 정합니다. 가중치 배열은 사전순으로 가장 작아야 합니다.
난이도

보통10점 중 7점

유형
그래프, 최소 신장 트리, 유니온 파인드, 그리디
정답자
아직 제출이 없습니다

문제

Silvermill은 최근 예산이 빠듯하고, 시장 Peanut은 유지보수 비용을 아끼려고 도로 일부를 철거할 계획이다. Silvermill에는 NN개의 교차로와 이들을 잇는 EE개의 도로가 있다. ii번째 도로는 교차로 AiA_i와 BiB_i를 잇는다. 교차로에는 1,…,N1, \ldots, N, 도로에는 1,…,E1, \ldots, E의 번호가 붙어 있다. 어떤 두 교차로든 직접 또는 간접적으로 오갈 수 있으며, 두 도로가 같은 양 끝점을 공유하지 않는다.

Peanut은 도로의 유지보수 비용을 평가해 달라고 너에게 일을 맡겼다. 과제는 1,…,E1, \ldots, E의 순열 W=(W1,…,WE)W = (W_1, \ldots, W_E)를 보고하는 것이다. 여기서 WiW_i는 ii번째 도로를 유지하는 비용이다.

이후 Peanut은 모든 교차로가 연결된 상태를 유지하면서 남기는 도로의 비용 합이 최소가 되도록 도로를 고른다. 다시 말해 Peanut은 네가 정한 가중치를 기준으로 최소 신장 트리를 남긴다. 비용이 모두 다르므로 최소 신장 트리는 하나뿐이다.

너에게는 숨은 목적이 있다. Peanut이 스패닝 트리를 이루는 도로 집합 RR을 남기기를 원하며, WW를 신중하게 정하면 이를 이룰 수 있다. 도시의 최소 신장 트리가 RR이 되도록 하는 사전순으로 가장 작은 순열 WW를 구하라.

(W1,…,WE)(W_1, \ldots, W_E)가 (W1′,…,WE′)(W'_1, \ldots, W'_E)보다 작다는 것은, 1≤p≤E1 \le p \le E인 어떤 pp에 대해 Wp<Wp′W_p < W'_p이고 모든 i<pi < p에 대해 Wi=Wi′W_i = W'_i인 것을 뜻한다.

입력

입력은 표준 입력으로 받는다. 첫 줄에는 두 정수 NN과 EE가 주어진다. 이어지는 EE개의 줄에는 도로 ii를 나타내는 두 정수 AiA_i와 BiB_i가 주어진다. 마지막 줄에는 RR에 속한 도로의 번호 N−1N - 1개가 주어진다.

출력

출력은 표준 출력으로 한다. RR을 최소 신장 트리로 만드는 사전순 최소 순열 WW를 한 줄에 EE개의 정수로 출력한다.

제한

1≤N,E≤3×1051 \le N, E \le 3 \times 10^5

1≤Ai≠Bi≤N1 \le A_i \ne B_i \le N

1≤Ri≤N1 \le R_i \le N

RR에 속한 도로만으로 임의의 두 교차로 사이를 오갈 수 있다.

예제2

  1. 예제 1

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

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