아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

일자리 찾기

면접 대비

시간 제한1초메모리 제한128 MB

요약
베시는 도시를 방문할 때마다 최대 D달러를 벌고 무료 경로와 유료 항공편을 이용할 수 있으며, 도시를 여러 번 방문할 수 있다. 벌 수 있는 최대 금액을 구하고 무한이면 -1을 출력한다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, 동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

베시는 돈이 다 떨어져서 일자리를 찾고 있습니다. 농부 존은 이를 알고 소들이 여기저기 돌아다니기를 바라며, 소는 한 도시에서 최대 DD (1≤D≤10001 \le D \le 1000) 달러를 벌면 반드시 다른 도시로 가서 일해야 한다는 규칙을 세웠습니다. 다만 베시는 다른 곳에서 얼마간 일한 뒤 어떤 도시로 다시 돌아와 그 도시에서 또다시 최대 DD 달러를 벌 수 있습니다. 이렇게 할 수 있는 횟수에는 제한이 없습니다.

베시의 세계는 CC (2≤C≤2202 \le C \le 220)개의 도시를 잇는 PP (1≤P≤1501 \le P \le 150)개의 일방통행 도로로 이루어져 있으며, 도시는 11번부터 CC번까지 번호가 매겨져 있습니다. 베시는 현재 도시 SS (1≤S≤C1 \le S \le C)에 있습니다. ii번째 도로는 도시 AiA_i에서 도시 BiB_i로 가는 일방통행이며 (1≤Ai≤C1 \le A_i \le C; 1≤Bi≤C1 \le B_i \le C), 통행 비용은 없습니다.

베시를 돕기 위해 농부 존은 자신의 전용 제트기 서비스를 이용하게 해 줍니다. 이 서비스는 FF (1≤F≤3501 \le F \le 350)개의 노선을 제공하며, 각 노선은 도시 JiJ_i에서 다른 도시 KiK_i로 가는 일방통행 항공편으로 (1≤Ji≤C1 \le J_i \le C; 1≤Ki≤C1 \le K_i \le C), 요금은 TiT_i (1≤Ti≤500001 \le T_i \le 50000) 달러입니다. 베시는 수중에 현금이 없어도 앞으로 벌 돈으로 항공권 값을 낼 수 있습니다.

베시는 언제 어디서든 은퇴할 수 있습니다. 시간이 무한히 주어질 때, 베시가 갈 수 있는 모든 도시에서 최대 DD 달러를 번다고 가정하면 그녀가 벌 수 있는 최대 금액은 얼마입니까? 이 금액에 한계가 없다면 −1-1을 출력하세요.

입력

  • 첫째 줄: 공백으로 구분된 다섯 개의 정수 DD, PP, CC, FF, SS
  • 다음 PP개의 줄: ii번째 줄에는 한 도시에서 다른 도시로 가는 일방통행 도로를 나타내는 두 정수 AiA_i와 BiB_i가 공백으로 구분되어 주어집니다.
  • 그다음 FF개의 줄: 각 줄에는 한 도시에서 다른 도시로 가는 일방통행 제트기 항공편과 그 요금을 나타내는 세 정수 JiJ_i, KiK_i, TiT_i가 공백으로 구분되어 주어집니다.

출력

  • 첫째 줄: 규칙을 지키면서 벌 수 있는 최대 금액을 나타내는 정수 하나. 벌 수 있는 금액에 한계가 없다면 −1-1을 출력하세요.

힌트

예시의 세계에는 다섯 개의 도시, 세 개의 도로, 두 개의 제트기 노선이 있습니다. 베시는 도시 11에서 출발하며, 각 도시에서 다른 곳으로 이동하기 전까지 최대 100100달러만 벌 수 있습니다.

베시는 도시 1→1 \to 도시 5→5 \to 도시 2→2 \to 도시 33의 순서로 이동하여 총 4×100−150=2504 \times 100 - 150 = 250 달러를 벌 수 있습니다.

예제1

  1. 예제 1

    입력
    100 3 5 2 1
    1 5
    2 3
    1 4
    5 2 150
    2 5 120
    
    예상 출력
    250