만드는 중입니다

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

새로운 메가시티

면접 대비

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

요약
도시 n개와 비용이 있는 도로 m개가 주어질 때, 각 도로가 모든 최소 신장 트리에 포함되면 1, 일부 트리에만 포함되면 2, 어떤 트리에도 없으면 3으로 분류합니다.
난이도

보통10점 중 6점

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

문제

당신은 nn개의 도시를 잇는 새로운 메가시티를 설계하는 대형 프로젝트에 참여하고 있다. 건설 후보 도로는 mm개이며, 도로마다 건설 비용이 정해져 있다. 모든 도시를 최소 총비용으로 연결해야 하므로, 도로들은 최소 신장 트리(MST)를 이루어야 한다. 다만 도로마다 중요도는 다르다. 각 도로를 다음 세 종류 중 하나로 분류하라.

  • 종류 1: 모든 MST에 포함되는 도로이다.
  • 종류 2: 적어도 하나의 MST에 포함되지만, 모든 MST에 포함되지는 않는 도로이다.
  • 종류 3: 어떤 MST에도 사용되지 않는 도로이다.

입력

첫 줄에 도시의 수 nn과 건설 후보 도로의 수 mm이 정수로 주어진다. 제약은 2≤n≤100 0002 \le n \le 100\,000, n−1≤m≤min⁡(100 000,n(n−1)/2)n - 1 \le m \le \min(100\,000, n(n - 1)/2)이다. 이어지는 mm개의 줄에는 정수 xx, yy, zz가 주어지며, 이는 도시 xx와 도시 yy를 잇는 도로의 건설 비용이 zz라는 뜻이다. 여기서 x≠yx \ne y, 1≤x,y≤n1 \le x, y \le n, 1≤z≤100 0001 \le z \le 100\,000이다. 같은 두 도시를 잇는 도로는 하나를 넘지 않는다. 입력에는 항상 MST가 적어도 하나 존재한다.

출력

mm개의 줄을 출력한다. ii번째 줄에는 입력에서 ii번째 도로의 종류를 나타내는 정수 1, 2, 3 중 하나를 출력한다.

예제2

  1. 예제 1

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

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