만드는 중입니다

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

Traveling SCCC President 2

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

요약
건물 1에서 N까지 가는 경로 중 도로 길이들의 비트 OR 값이 가장 작은 경로의 값을 구합니다.
난이도

보통10점 중 6점

유형
비트 연산, 유니온 파인드, 그리디
정답자
아직 제출이 없습니다

문제

숭실대학교 컴퓨터학부 문제해결 소모임 SCCC의 회장 상원이는 대회 홍보 포스터를 붙이려고 정보과학관에서 형남공학관까지 이동하려고 한다.

숭실대학교 캠퍼스에는 11번부터 NN번까지 번호가 붙은 NN개의 건물과 11번부터 MM번까지 번호가 붙은 MM개의 도로가 있다. 각 도로는 서로 다른 두 건물을 잇는다. ii번 도로는 uiu_i번 건물과 viv_i번 건물을 잇고, 길이는 wiw_i이다. 두 건물을 잇는 도로는 최대 한 개이며, 모든 건물은 도로를 통해 서로 이동할 수 있다. 정보과학관은 11번 건물, 형남공학관은 NN번 건물이다.

보통 사람은 건물 사이를 이동할 때 사용한 도로 길이의 합만큼 시간이 걸린다. 그런데 상원이는 사용한 도로 길이를 모두 bitwise OR 연산한 값만큼 시간이 걸린다. 상원이가 11번 건물에서 NN번 건물까지 이동하는 데 걸리는 최소 시간을 구하라.

입력

첫째 줄에 건물 개수 NN과 도로 개수 MM이 공백으로 구분되어 주어진다.

둘째 줄부터 MM개의 줄에 걸쳐, ii번 도로가 잇는 두 건물 번호 ui,viu_i, v_i와 도로 길이 wiw_i가 한 줄에 하나씩 공백으로 구분되어 주어진다.

출력

상원이가 11번 건물에서 NN번 건물까지 이동하는 데 필요한 최소 시간을 출력한다.

제한

  • 2≤N≤300 0002 \le N \le 300\,000
  • N−1≤M≤300 000N-1 \le M \le 300\,000
  • 1≤ui,vi≤N1 \le u_i, v_i \le N, ui≠viu_i \ne v_i (1≤i≤M)(1 \le i \le M)
  • 0≤wi<2600 \le w_i < 2^{60} (1≤i≤M)(1 \le i \le M)
  • i≠ji \ne j이면 (ui,vi)≠(uj,vj)(u_i, v_i) \ne (u_j, v_j)이고 (ui,vi)≠(vj,uj)(u_i, v_i) \ne (v_j, u_j)이다. 같은 두 건물을 잇는 도로는 여러 개 없다.
  • 모든 건물은 도로를 통해 이어져 있다.
  • 입력으로 주어지는 수는 모두 정수이다.

힌트

두 정수 AA, BB의 bitwise OR 값 A OR BA\text{ OR }B는 다음과 같이 정의한다. 이진법으로 나타냈을 때, AA와 BB의 2k2^k 자릿수 중 하나 이상이 1이면 A OR BA\text{ OR }B의 2k2^k 자릿수는 1이다. 둘 다 0이면 A OR BA\text{ OR }B의 2k2^k 자릿수는 0이다.

예를 들어 12=1100(2)12=1100_{(2)}, 10=1010(2)10=1010_{(2)}이므로 12 OR 10=1100(2) OR 1010(2)=1110(2)=1412\text{ OR }10=1100_{(2)}\text{ OR }1010_{(2)}=1110_{(2)}=14이다.

정수 A1,A2,⋯ ,AkA_1, A_2, \cdots, A_k의 bitwise OR 결과는 (⋯((A1 OR A2) OR A3) OR ⋯ ) OR Ak(\cdots((A_1\text{ OR }A_2)\text{ OR }A_3)\text{ OR }\cdots)\text{ OR }A_k로 정의한다. 이 결과는 A1,…,AkA_1, \ldots, A_k의 순서를 바꿔도 변하지 않음을 증명할 수 있다.

도로 길이와 정답은 32비트 정수 범위를 벗어날 수 있으므로, C/C++에서는 long long 타입을, Java에서는 long 타입을 쓰는 것을 권장한다.

입출력 양이 많으므로 문제지 2-4페이지의 언어 가이드에 있는 빠른 입출력을 사용하는 것을 권장한다.

예제2

  1. 예제 1

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

    입력
    2 1
    1 2 1152921504606846975
    
    예상 출력
    1152921504606846975