시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 5 0 0 0.000%

문제

오래된 놀이공원의 주인인 인서는 놀이공원을 새롭게 단장하기 위해 자신의 가장 유능한 직원인 정우에게 리모델링을 지시하였다. 리모델링의 책임자가 된 정우는 우선 놀이공원의 상태를 아래와 같이 파악하였다.

  1. 놀이공원에는 N개의 놀이기구와 M개의 공원포탈이 있다.
  2. 각 놀이기구의 주행시간은 T이며, 놀이기구를 탄 후 바로 공원포탈을 이용하여 다음 놀이기구의 대기인원 중 맨 뒤로 이동할 수 있다.
  3. 각 놀이기구마다 대기시간 P가 있으며, 시간이 지나도 대기시간은 동일하다.
  4. 각 공원포탈을 이용하여 한 놀이기구에서 다른 놀이기구로 이동하는 시간은 각각 S이다.

정우는 위와 같은 놀이공원의 상태를 바탕으로 고객에 대해 아래와 같은 가설을 설립하였다.

  1. 가장 작은 P의 놀이기구를 처음으로 타고, 가장 큰 P의 놀이기구를 마지막으로 타고자 한다.
  2. 첫 놀이기구에서 마지막 놀이기구까지 최단소요시간 안에 이동하고자 한다.
  3. 최단소요시간 안에 이동하는 동안 경로 상에 있는 모든 놀이기구를 타고자 한다.
  4. 최단소요시간에는 공원포탈 이동시간과 놀이기구 주행시간, 놀이기구 대기시간이 포함된다.

정우는 고객들의 편의를 위하여 최단소요시간을 더 줄이고자 아래의 기준을 설립하였다.

  1. 기존에 설치되어 있던 각 공원포탈의 이동시간 S를 서로 바꿀 수 있다.
  2. 공원포탈의 이동시간 S를 서로 바꾼 후 최단소요시간의 경로는 서로 바꾸기 전 최단소요시간의 경로와 다를 수 있다.

정우를 위해 공원포탈의 이동시간 S를 서로 바꾸기 전의 최단소요시간과 서로 바꾼 후의 최단소요시간의 차이를 알아내는 프로그램을 작성하도록 하자.

입력

첫 번째 줄에 N과 M이 주어진다. (4 ≤ N ≤ 100, N ≤ M ≤ N(N-1)/2) 이후 놀이기구를 R이라고 할 때, 두 번째 줄부터 N개의 줄에 걸쳐 R1부터 RN까지의 T와 P가 순서대로 주어지며, (N+2)번째 줄부터 M개의 줄에 걸쳐 출발지점 Ri, 도착지점 Rj와 두 지점 사이의 이동시간 S가 주어진다. (1 ≤ T ≤ P ≤ 100, -100 ≤ S ≤ 100) S가 0인 경우는 순간이동을 하는 경우이며, S가 0보다 작은 경우는 시간을 되돌아가는 경우이다.

출력

공원포탈의 이동시간 S를 서로 바꾸기 전의 최단소요시간과 서로 바꾼 후의 최단소요시간의 차이를 출력한다. 만약 공원포탈의 이동시간 S를 서로 바꾸기 전 가장 작은 P의 놀이기구에서 시작하여 가장 큰 P의 놀이기구로 가는 과정에서 시간을 무한히 오래 전으로 되돌릴 수 있거나, 가장 큰 P의 놀이기구로 갈 수 있는 경로가 없다면 -1을 출력한다.

예제 입력 1

4 5
1 5
2 6
3 7
4 8
1 2 20
1 3 -2
2 4 11
3 2 3
3 4 -10

예제 출력 1

2

공원포탈의 이동시간 S를 서로 바꾸기 전 P가 가장 작은 R1에서 P가 가장 큰 R4까지 가는 최단소요시간은 6(R1) - 2 + 10(R3) - 10 + 12(R4) = 16이며, 공원포탈의 이동시간 S를 서로 바꾼 후 P가 가장 작은 R1에서 P가 가장 큰 R4까지 가는 최단소요시간은 6(R1) - 2 + 8(R2) - 10 + 12(R4) = 14가 되어 최단소요시간의 차이는 2가 된다.

예제 입력 2

4 5
1 5
2 6
3 7
4 8
1 3 -12
2 1 -10
2 4 11
3 2 -9
3 4 -10

예제 출력 2

-1

공원포탈의 이동시간 S를 서로 바꾸기 전 P가 가장 작은 R1에서 P가 가장 큰 R4까지 가는 최단소요시간의 경로에서 6(R1) - 12 + 10(R3) - 9 + 8(R2) - 10 + 6(R1)이 시간을 무한히 오래 전으로 되돌릴 수 있으므로 -1이 된다.