그래프 구성하기
면접 대비시간 제한1초메모리 제한1024 MB
N×N 거리 행렬 D가 주어질 때, 최단 거리가 D와 같고 간선 가중치의 합이 최소인 연결 그래프를 만들거나 그런 그래프가 없으면 -1을 출력합니다.
문제
크기의 행렬 가 주어집니다. 정점이 개이고 아래 조건을 만족하는 무방향 연결 그래프를 구성하세요. 정점은 1부터 까지 번호가 매겨져 있으며, 각 간선에는 양의 정수 가중치를 원하는 대로 부여할 수 있습니다.
- 모든 정점 쌍 에 대해, 와 사이의 최단 경로 길이는 이다.
- 모든 간선 가중치의 합은 가능한 한 작아야 한다.
그러한 그래프가 존재하는지 판별하고, 존재한다면 그중 아무거나 하나를 출력하세요.
입력
첫 번째 줄에 정점의 개수 이 주어집니다. 이어지는 개 줄 중 번째 줄에는 공백으로 구분된 정수 이 주어집니다.
출력
조건을 만족하는 그래프가 존재하지 않으면 을 출력하세요.
존재한다면 첫 번째 줄에 간선의 개수 을 출력합니다. 이어지는 개 줄의 번째 줄에는 공백으로 구분된 세 정수 , , 를 출력합니다. 이는 번 간선이 정점 와 를 잇고 가중치가 임을 뜻합니다.
같은 쌍의 정점을 잇는 간선은 최대 하나여야 하며, 각 간선의 가중치는 이하여야 합니다.
제한
- ()
- ()
- ()
- ()
- ()
- 같은 쌍의 정점을 잇는 간선은 최대 하나여야 한다.