포럼
문제 COCI00070

George

설명

지난주에 George 씨가 크로아티아를 방문했다. George 씨는 매우 중요한 인물이기 때문에, 그가 어떤 거리에 있는 동안 경찰은 그 거리로의 진입을 금지했다. 다만 George 씨보다 먼저 그 거리에 들어온 차량은 계속 운행할 수 있었다.

George 씨가 방문하는 동안 Luka는 트럭을 몰고 시내를 돌아다녔다. 그런데 일부 거리가 통제되는 바람에 배달을 제때 하지 못해 하마터면 일자리를 잃을 뻔했다. 이제 와서 늦었지만, 그는 배달을 더 잘 계획할 수 있었을지, 즉 George 씨가 방문하는 동안 배달에 필요한 최소 시간이 얼마였을지 궁금해하고 있다. 그는 George 씨가 지난 경로를 알고 있다.

도시는 교차로들과 이들을 잇는 양방향 거리로 모델링된다. 각 거리에 대해 Luka는 그 거리를 지나는 데 걸리는 시간을 알고 있다(George 씨도 같은 시간이 걸린다).

예를 들어 George 씨가 \(10\)번째 분에 어떤 거리를 지나가기 시작해 빠져나가는 데 \(5\)분이 걸린다면, 그 거리는 \(10\), \(11\), \(12\), \(13\), \(14\)번째 분 동안 통제된다. Luka는 \(9\)번째 분 이전이나 \(15\)번째 분 이후에 그 거리에 들어갈 수 있다.

Luka가 George 씨 도착 후 \(K\)분 뒤에 출발한다고 할 때, 배달에 필요한 최소 시간을 계산하는 프로그램을 작성하시오.

제약
입력 형식

첫째 줄에 교차로의 수와 거리의 수인 두 정수 \(N\)\(M\) (\(2 \le N \le 1000\), \(2 \le M \le 10\,000\))이 주어진다. 교차로에는 \(1\)부터 \(N\)까지 번호가 붙어 있다.

둘째 줄에 네 정수 \(A\), \(B\), \(K\), \(G\) (\(1 \le A, B \le N\), \(0 \le K \le 1000\), \(0 \le G \le 1000\))가 주어진다. 순서대로 다음과 같다:

  • Luka가 출발하는 교차로;
  • Luka가 도착해야 하는 교차로;
  • George 씨와 Luka의 출발 시각 차이(Luka는 George 씨가 경로를 시작한 지 정확히 \(K\)분 뒤에 교차로 \(A\)에서 출발한다);
  • George 씨의 경로에 있는 교차로의 수.

셋째 줄에 정수 \(G\)개, 즉 George 씨가 방문할 교차로들의 번호가 주어진다. 인접한 두 정수의 쌍은 그가 지나갈 거리를 나타낸다. 그 거리는 반드시 존재하며, George 씨는 어떤 거리도 최대 한 번만 지난다.

다음 \(M\)개의 줄에는 세 정수 \(A\), \(B\), \(L\)이 주어진다. 교차로 \(A\)\(B\) 사이에 거리가 있고 지나는 데 \(L\)분이 걸린다는 뜻이다. \(L\)\(1\) 이상 \(1000\) 이하이다.

출력 형식

Luka가 배달에 필요한 최소 시간(분)을 출력한다.

서브태스크
서브태스크점수설명

Subtask 1

60점
예제 1
입력
6 5
1 6 20 4
5 3 2 4
1 2 2
2 3 8
2 4 3
3 6 10
3 5 15
출력
21
예제 2
입력
8 9
1 5 5 5
1 2 3 4 5
1 2 8
2 7 4
2 3 10
6 7 40
3 6 5
6 8 3
4 8 4
4 5 5
3 4 23
출력
40
문제 정보

riseoj 작성

출처 COCI 2007/2008 Contest 6

평가 및 의견

George

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

George

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8