| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 1024 MB | 380 | 125 | 101 | 31.761% |
정점이 $N$개이고, 간선이 $M$개인 단방향 그래프가 주어집니다. 간선은 입력에서 주어지는 순서대로 1ドル$번부터 $M$번까지의 번호가 붙어 있습니다.
소영이는 많은 정점 쌍들을 최단 거리로 빠르게 연결하고 있는 간선들이 기특하다는 생각이 들었습니다. 그래서 간선들에 각각 점수를 매긴 뒤, 가장 점수가 높은 간선들에게 최고의 간선 상을 수여하려고 합니다. 간선의 점수는 아래와 같은 방식으로 계산합니다.
소영이는 점수가 같은 간선이 여러 개가 있다면, 최고 점수를 기록한 모든 간선들에게 상을 주려고 합니다. 어떤 간선들이 최고의 간선 상을 받게 될지를 구해봅시다.
첫 번째 줄에는 두 개의 정수 $N$과 $M$이 공백으로 구분되어 주어집니다. $(2 \le N \le 2 \times 10^3, 1 \le M \le min(N\times (N-1),\ 5 \times 10^3))$
다음 $M$개의 줄에는 $i$ 번째 간선의 시작 정점 $u_i$와 도착 정점 $v_i,ドル 그리고 간선의 길이 $w_i$가 공백으로 구분되어 주어집니다. 같은 정점 쌍을 연결하는 서로 다른 간선이 존재하지 않고, 시작 정점과 도착 정점이 같은 간선은 주어지지 않습니다. $( 1 \le u_i, v_i \le N, u_i \neq v_i, 1 \le w_i \le 10^9)$
첫 번째 줄에는 상을 받게 될 간선의 수를 출력합니다.
두 번째 줄에는 상을 받게 될 간선의 번호를 작은 것부터 순서대로 공백으로 구분하여 출력합니다.
4 5 4 3 5 1 2 5 3 4 3 4 1 2 2 1 4
1 4
6 10 1 5 1 1 2 1 5 1 1 4 6 1 6 4 1 2 6 1 1 3 1 2 5 1 5 2 1 6 5 1
2 3 10
2 2 1 2 3 2 1 4
2 1 2