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

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

보안 연결

면접 대비

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

요약
각 정점에 0, 1, 2 표지가 붙은 가중 무방향 그래프에서 1번 표지 정점과 2번 표지 정점을 잇는 최소 비용 경로를 찾아 양 끝점과 비용을 출력한다.
난이도

보통10점 중 5점

유형
그래프, 최단 경로, 힙, 동적 계획법
정답자
아직 제출이 없습니다

문제

최근 통신 회선 도청 사건이 알려지면서, 우라가니아의 두 인터넷 대기업 Laim.UR과 Xenda가 서로의 데이터 센터를 연결하는 보안 통신 회선을 설치하기로 합의했다. 우라가니아에는 nn개의 도시가 있지만, 안타깝게도 두 대기업의 데이터 센터가 함께 있는 도시는 하나도 없다. 따라서 보안 회선을 구성하려면 도시 사이에 통신 선로를 새로 깔아야 한다.

각 회사의 전문가들은 통신 회선 구간을 깔아 연결할 수 있는 도시 쌍 mm개를 정하고, 각 쌍마다 그러한 구간을 만드는 비용을 산정했다.

완성된 회선은 여러 구간으로 이루어질 수 있다. 회선은 첫 번째 회사의 데이터 센터가 있는 도시 중 하나에서 시작하고, 중간 도시를 지날 수 있으며, 두 번째 회사의 데이터 센터가 있는 도시에서 끝나야 한다.

이제 두 회사의 데이터 센터를 연결하는 보안 회선의 최소 비용을 구해야 한다.

입력

첫째 줄에 정수 nn과 mm이 주어진다 (2≤n≤5 0002 \le n \le 5\,000, 1≤m≤1051 \le m \le 10^5). 각각 도시의 수와 통신 회선 구간으로 연결할 수 있는 도시 쌍의 수다.

둘째 줄에 nn개의 정수 a_ia\_i가 주어진다 (0≤a_i≤20 \le a\_i \le 2). a_i=0a\_i = 0이면 ii번째 도시에 두 대기업 중 어느 쪽의 데이터 센터도 없다. a_i=1a\_i = 1이면 ii번째 도시에 Laim.UR의 데이터 센터가 있고, a_i=2a\_i = 2이면 ii번째 도시에 Xenda의 데이터 센터가 있다. 이 수들 가운데 1과 2가 각각 적어도 하나씩 있음이 보장된다.

다음 mm개 줄에는 각각 세 개의 정수 s_is\_i, t_it\_i, c_ic\_i가 주어진다. 이는 도시 s_is\_i와 t_it\_i (1≤s_i,t_i≤n1 \le s\_i, t\_i \le n, s_i≠t_is\_i \ne t\_i)를 비용 c_ic\_i (1≤c_i≤1051 \le c\_i \le 10^5)인 통신 회선 구간으로 연결할 수 있음을 뜻한다. 각 도시 쌍은 통신 회선 구간 하나로만 연결할 수 있다.

출력

서로 다른 인터넷 대기업의 데이터 센터 두 곳을 보안 통신 회선으로 연결할 수 있다면, 세 수 xx, yy, dd를 출력한다. 이는 도시 xx와 yy 사이에 총비용 dd인 통신 회선을 놓을 수 있음을 뜻한다. 도시 xx에는 Laim.UR의 데이터 센터가, 도시 yy에는 Xenda의 데이터 센터가 있어야 한다. 최적해가 여러 개라면 그중 아무거나 출력한다. 해당 회선을 놓을 수 없다면 −1-1을 출력한다.

힌트

첫 번째 예제에서는 두 구간 3−23-2와 2−42-4로 통신 회선을 구성하는 것이 최적이다.

예제2

  1. 예제 1

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

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