일자리 찾기
면접 대비시간 제한1초메모리 제한128 MB
베시는 도시를 방문할 때마다 최대 D달러를 벌고 무료 경로와 유료 항공편을 이용할 수 있으며, 도시를 여러 번 방문할 수 있다. 벌 수 있는 최대 금액을 구하고 무한이면 -1을 출력한다.
문제
베시는 돈이 다 떨어져서 일자리를 찾고 있습니다. 농부 존은 이를 알고 소들이 여기저기 돌아다니기를 바라며, 소는 한 도시에서 최대 () 달러를 벌면 반드시 다른 도시로 가서 일해야 한다는 규칙을 세웠습니다. 다만 베시는 다른 곳에서 얼마간 일한 뒤 어떤 도시로 다시 돌아와 그 도시에서 또다시 최대 달러를 벌 수 있습니다. 이렇게 할 수 있는 횟수에는 제한이 없습니다.
베시의 세계는 ()개의 도시를 잇는 ()개의 일방통행 도로로 이루어져 있으며, 도시는 번부터 번까지 번호가 매겨져 있습니다. 베시는 현재 도시 ()에 있습니다. 번째 도로는 도시 에서 도시 로 가는 일방통행이며 (; ), 통행 비용은 없습니다.
베시를 돕기 위해 농부 존은 자신의 전용 제트기 서비스를 이용하게 해 줍니다. 이 서비스는 ()개의 노선을 제공하며, 각 노선은 도시 에서 다른 도시 로 가는 일방통행 항공편으로 (; ), 요금은 () 달러입니다. 베시는 수중에 현금이 없어도 앞으로 벌 돈으로 항공권 값을 낼 수 있습니다.
베시는 언제 어디서든 은퇴할 수 있습니다. 시간이 무한히 주어질 때, 베시가 갈 수 있는 모든 도시에서 최대 달러를 번다고 가정하면 그녀가 벌 수 있는 최대 금액은 얼마입니까? 이 금액에 한계가 없다면 을 출력하세요.
입력
- 첫째 줄: 공백으로 구분된 다섯 개의 정수 , , , ,
- 다음 개의 줄: 번째 줄에는 한 도시에서 다른 도시로 가는 일방통행 도로를 나타내는 두 정수 와 가 공백으로 구분되어 주어집니다.
- 그다음 개의 줄: 각 줄에는 한 도시에서 다른 도시로 가는 일방통행 제트기 항공편과 그 요금을 나타내는 세 정수 , , 가 공백으로 구분되어 주어집니다.
출력
- 첫째 줄: 규칙을 지키면서 벌 수 있는 최대 금액을 나타내는 정수 하나. 벌 수 있는 금액에 한계가 없다면 을 출력하세요.
힌트
예시의 세계에는 다섯 개의 도시, 세 개의 도로, 두 개의 제트기 노선이 있습니다. 베시는 도시 에서 출발하며, 각 도시에서 다른 곳으로 이동하기 전까지 최대 달러만 벌 수 있습니다.
베시는 도시 도시 도시 도시 의 순서로 이동하여 총 달러를 벌 수 있습니다.