gCampus (Large)

모든 사무실 쌍 사이의 최단 이동 경로에 한 번도 포함되지 않는 도로를 모두 찾습니다.

보통5최단 경로그래프아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

G사의 본사 캠퍼스에는 사무실 NN개(0번부터 N1N-1번까지)와 양방향 도로 MM개(0번부터 M1M-1번까지)가 있다. ii번 도로는 사무실 UiU_i와 사무실 ViV_i를 잇고, 어느 방향으로 지나든 CiC_i분이 걸린다.

사무실 XX와 사무실 YY를 잇는 경로는 XX에서 시작해 YY에서 끝나는, 도로 한 개 이상의 나열이다. 경로를 지나는 데 걸리는 시간은 그 경로를 이루는 도로의 소요 시간을 모두 더한 값이다. 어떤 두 사무실 사이에도 경로가 적어도 하나 있다는 것이 보장된다.

G사는 효율적인 운송을 다루는 회사인데, 정작 자기 캠퍼스의 도로망이 최적이 아닐 수도 있다는 사실을 대표가 방금 깨달았다. 대표는 캠퍼스의 도로 중 어느 것이 비효율적인지 알고 싶어 한다. 어떤 도로가 비효율적이라는 것은, 그 도로가 어느 두 사무실 사이의 어떤 최단 경로에도 들어가지 않는다는 뜻이다.

사무실과 도로로 이루어진 그래프가 주어질 때, 비효율적인 도로를 모두 찾아라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 테스트 케이스가 TT개 주어진다. 각 테스트 케이스의 첫째 줄에는 사무실의 개수 NN과 도로의 개수 MM이 주어진다. 다음 MM개의 줄에는 정수 세 개 UiU_i, ViV_i, CiC_i가 주어진다. ii번 도로가 사무실 UiU_i와 사무실 ViV_i를 잇고, 지나는 데 CiC_i분이 걸린다는 뜻이다.

제한

  • 0<Ci10000000 < C_i \le 1000000
  • 1T31 \le T \le 3
  • 1N1001 \le N \le 100
  • 1M100001 \le M \le 10000

출력

각 테스트 케이스마다 Case #x:를 한 줄에 출력한다. xx는 테스트 케이스 번호이고 1부터 시작한다. 그 다음 줄부터 비효율적인 도로의 번호를 증가하는 순서로 한 줄에 하나씩 출력한다. 비효율적인 도로가 없으면 Case #x: 줄만 출력한다. 0번 도로는 그 테스트 케이스에서 첫 번째로 주어진 도로, 1번 도로는 두 번째로 주어진 도로를 가리킨다.