대동여지도

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

요약
최소 신장 트리를 구하되, 최소 비용인 것들 중 주어진 우선순위에 따라 각 도로 종류의 개수가 최대가 되도록 골라 총비용과 종류별 개수와 비용을 출력한다.
난이도

보통10점 중 6점

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

문제

세종이는 조선 시대의 지도인 대동여지도를 보면서 한양을 포함한 모든 지역을 연결하는 도로를 설치한다면 비용이 얼마나 들지 궁금해졌다.

설치할 수 있는 도로의 종류는 총 3가지로 도보 전용 도로, 말 전용 도로, 마차 전용 도로가 있다.

세종이는 지역을 연결할 수 있는 모든 도로를 전부 설치하고 싶지만 국고가 부족한 관계로 최소한의 비용을 사용하여 모든 지역을 이동할 수 있도록 도로를 설치하려 한다. 만약 최소한의 비용으로 도로를 설치할 수 있는 경우가 여러가지라면, 조정에서 지정해준 우선순위가 1번째인 도로가 가장 많은 순으로, 이 경우도 여러가지라면 우선순위가 2번째인 도로가 가장 많은 순으로 설치하려 한다.

세종이를 도와 최소한의 비용을 사용하여 모든 지역을 연결하는 도로를 설치하고, 설치에 드는 총 비용과 도보, 말, 마차 전용 도로 각각의 설치 개수와 비용을 파악해보자.

입력

첫 번째 줄에 장소의 개수 NN과 설치할 수 있는 도로의 개수 MM이 주어진다. (2≤N≤10,000;(2 \le N \le 10\\,000; N−1≤M≤200,000)N-1 \le M \le 200\\,000)

두 번째 줄에 서로 다른 도로 종류 p_ip\_i가 우선순위가 높은 순서대로 3개 주어지며, 각각 00은 도보 전용 도로, 11은 말 전용 도로, 22는 마차 전용 도로를 의미한다. (0≤p_i≤2)(0 \le p\_i \le 2)

다음 MM개의 줄에 걸쳐 두 장소를 연결하는 경로의 정보 u_iu\_i, v_iv\_i, w_iw\_i, k_ik\_i가 주어진다.

u_iu\_i, v_iv\_i는 각각 지역 번호를 의미한다. (u_i≠v_i;(u\_i \ne v\_i; 1≤u_i,v_i≤N)1 \le u\_i, v\_i \le N)

w_iw\_i는 도로의 설치 비용을 의미한다. (1≤w_i≤10,000)(1 \le w\_i \le 10,000)

k_ik\_i는 도로의 종류를 의미하며, 각각 00은 도보 전용 도로, 11은 말 전용 도로, 22는 마차 전용 도로를 의미한다. (0≤k_i≤2)(0 \le k\_i \le 2)

입력은 모든 지역을 연결할 수 있도록 주어진다.

출력

첫 번째 줄에 NN개의 지역이 연결하기 위해 도로를 설치할 때 필요한 최소 비용을 출력한다.

두 번째 줄에 최소 비용으로 도로를 설치할 때 도보 전용 도로의 설치 개수와 비용을 공백으로 구분하여 출력한다.

세 번째 줄에 최소 비용으로 도로를 설치할 때 말 전용 도로의 설치 개수와 비용을 공백으로 구분하여 출력한다.

네 번째 줄에 최소 비용으로 도로를 설치할 때 마차 전용 도로의 설치 개수와 비용을 공백으로 구분하여 출력한다.

예제2

  1. 예제 1

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

    입력
    5 30
    0 1 2
    1 3 3 0
    1 3 16 1
    1 3 10 2
    2 3 16 0
    2 3 15 1
    2 3 15 2
    5 4 6 0
    5 4 13 1
    5 4 9 2
    3 4 13 0
    3 4 3 1
    3 4 4 2
    5 2 13 0
    5 2 16 1
    5 2 12 2
    5 3 7 0
    5 3 16 1
    5 3 1000 2
    2 5 7 0
    2 5 1 1
    2 5 13 2
    3 2 1 0
    3 2 3 1
    3 2 4 2
    1 3 16 0
    1 3 1 1
    1 3 8 2
    2 4 3 0
    2 4 7 1
    2 4 1 2
    
    예상 출력
    4
    1 1
    2 2
    1 1