만드는 중입니다

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

러브 레터

면접 대비

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

요약
나이가 서로 다른 용들과 무료로 연결되는 친구 관계가 주어질 때, 용 1에서 각 용까지 편지를 보내는 최소 시간을 구합니다.
난이도

보통10점 중 5점

유형
최단 경로, 그래프, 정렬
정답자
아직 제출이 없습니다

문제

번호가 11부터 nn까지 매겨진 용이 nn마리 있습니다. 용 ii의 나이는 aia_i입니다. aia_i의 값은 모두 서로 다릅니다. 1번 용은 에비리르입니다.

에비리르는 용 tt에게 보낼 편지가 있습니다. 나이 차이로 생기는 어색함을 피하려고, 에비리르는 편지를 다른 용에게 보낼 수 있습니다(반드시 tt번 용일 필요는 없습니다). 편지를 받은 용은 또 다른 용에게 편지를 보낼 수 있으며, 이런 과정을 거쳐 결국 편지를 tt번 용에게 전달하는 것이 목표입니다.

용 ii가 편지를 가지고 있을 때, 용 jj에게 ∣ai−aj∣|a_i - a_j|의 시간으로 편지를 보낼 수 있습니다. 용은 자기 자신에게 00의 시간으로 편지를 보낼 수 있습니다. 서로 절친한 용의 쌍이 kk개 있습니다. 용 ii와 jj가 절친하면, 용 ii가 jj에게 편지를 보내는 데 00의 시간이 걸리며, 그 반대도 마찬가지입니다.

각 용 tt(1≤t≤n1 \le t \le n)에 대해 독립적으로 답하세요. 1번 용이 tt번 용에게 편지를 보내는 데 필요한 최소 총 시간은 얼마인가요?

절댓값 ∣x∣|x|는 xx와 0 사이의 거리입니다. 예를 들어 ∣9∣=9|9| = 9, ∣−6∣=6|-6| = 6, ∣0∣=0|0| = 0입니다.

입력

첫 줄에 용의 수 nn과 절친한 쌍의 수 kk가 주어집니다(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5, 0≤k≤2⋅1050 \le k \le 2 \cdot 10^5). 둘째 줄에는 서로 다른 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9)이 공백으로 구분되어 주어집니다. 이어서 kk개의 줄에 정수 uu와 vv(1≤u,v≤n1 \le u, v \le n, u≠vu \ne v)가 주어지며, 이는 용 uu와 vv가 절친하다는 뜻입니다. 같은 쌍은 순서와 무관하게 두 번 나오지 않습니다.

출력

공백으로 구분하여 정수 d1,d2,…,dnd_1, d_2, \ldots, d_n을 출력하세요. 여기서 did_i는 1번 용이 ii번 용에게 편지를 보내는 데 필요한 최소 총 시간입니다.

힌트

첫 번째 예제에서 1번 용은 자기 자신에게 00의 시간으로 도달합니다. 1번 용과 3번 용은 절친하므로 3번 용도 00의 시간으로 도달합니다. 2번 용은 3번 용이 2번 용에게 ∣23−30∣=7|23 - 30| = 7의 시간으로 보내서 도달하므로 총 77입니다. 8번 용은 1번 용이 직접 ∣50−47∣=3|50 - 47| = 3의 시간으로 보내므로 33입니다. 4번 용은 1→03→72→041 \xrightarrow{0} 3 \xrightarrow{7} 2 \xrightarrow{0} 4로 77의 시간이 걸립니다. 5번 용은 1→03→72→04→751 \xrightarrow{0} 3 \xrightarrow{7} 2 \xrightarrow{0} 4 \xrightarrow{7} 5로 1414의 시간이 걸립니다. 6번 용은 1→03→07→261 \xrightarrow{0} 3 \xrightarrow{0} 7 \xrightarrow{2} 6으로 22의 시간이 걸립니다. 7번 용은 1→071 \xrightarrow{0} 7로 00의 시간이 걸립니다.

예제2

  1. 예제 1

    입력
    8 4
    50 30 23 10 3 67 69 47
    3 7
    3 1
    2 4
    7 1
    
    예상 출력
    0 7 0 7 14 2 0 3
    
  2. 예제 2

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