QOJ.ac

QOJ

Time Limit: 0.5 s Memory Limit: 64 MB Total points: 100

#23808. JOI 왕국의 쇼핑 사정

Statistics

문제 설명

JOI 왕국에는 $N$개의 마을이 있으며, 그 사이에는 양방향으로 통행 가능한 $M$개의 도로가 연결되어 있다. $K$개의 마을에는 쇼핑몰이 있어서, 국민들은 도로를 통해 그 마을들 중 한 곳으로 가서 쇼핑을 한다.

집의 위치에 따라서는 쇼핑을 하러 가기 위해 긴 거리를 이동해야 할 필요가 있으며, 이는 매우 불편하다. 국왕은 이러한 실정을 파악하기 위해, 쇼핑몰이 있는 마을까지의 최단 거리가 집의 위치에 따라 얼마나 길어질 수 있는지를 조사하기로 했다. 집은 도로 도중에 지어질 수도 있으므로(입력 예제 $1$의 설명 참조), 이 조사는 매우 힘들다. 그래서 국왕은 우수한 프로그래머인 당신에게 조사를 수행하는 프로그램 작성을 의뢰했다.

도로의 정보와 쇼핑몰이 있는 마을의 정보가 주어질 때, 쇼핑몰이 있는 마을로부터 가장 먼 도로 위의 점(끝점 포함)까지의 거리를 구하는 프로그램을 작성하시오. 마을 안을 이동하는 데 걸리는 거리는 무시해도 좋다.

입력

표준 입력에서 다음 입력을 읽어 들이시오.

  • $1$번째 줄에는 정수 $N, M, K$가 공백으로 구분되어 적혀 있다. $N$은 JOI 왕국의 마을의 개수를, $M$은 JOI 왕국의 도로의 개수를, $K$는 쇼핑몰이 있는 마을의 개수를 각각 나타낸다. 마을에는 $1, 2, \dots, N$의 번호가 매겨져 있다.
  • 이어지는 $M$개의 줄은 도로의 정보를 나타낸다. $(i + 1)$번째 줄($1 \le i \le M$)에는 정수 $a_i, b_i, l_i$($1 \le a_i \le N, 1 \le b_i \le N, 1 \le l_i \le 1000$)가 공백으로 구분되어 적혀 있다. 이는 $i$번째 도로가 마을 $a_i$와 마을 $b_i$를 연결하고 있으며, 길이가 $l_i$임을 나타낸다. 도로의 양 끝이 같은 마을인 경우는 없다. 또한, 임의의 $2$개의 마을 $p, q$에 대해 $p$와 $q$를 연결하는 도로는 $2$개 이상 존재하지 않는다. 어느 마을에서 어느 마을로든 몇 개의 도로를 따라 이동할 수 있다.
  • 이어지는 $K$개의 줄은 쇼핑몰의 정보를 나타낸다. $(i + M + 1)$번째 줄($1 \le i \le K$)에는 $1$개의 정수 $s_i$($1 \le s_i \le N$)가 적혀 있다. 이는 마을 $s_i$에 쇼핑몰이 있음을 나타낸다. $s_1, \dots, s_K$ 중에 같은 값이 $2$번 이상 나타나는 경우는 없다.

출력

표준 출력에 쇼핑몰이 있는 마을까지의 최단 거리의 최댓값을 소수점 첫째 자리에서 반올림한 정수 $1$개를 출력하시오.

예제

예제 1

입력
3 3 1
1 2 1
2 3 1
3 1 1
1
출력
2
설명

입력 예제 $1$은 다음과 같은 마을을 나타낸다. 도로의 길이는 모두 $1$이다. 쇼핑몰은 마을 $1$에만 있다.

쇼핑몰이 있는 마을까지 가장 먼 점은 마을 $2$와 마을 $3$을 연결하는 도로 위의, 마을 $2$로부터 거리 $0.5$인 위치에 있는 점이며, 쇼핑몰이 있는 마을까지의 거리는 $1.5$이다. 따라서 이를 반올림한 값인 $2$를 출력한다.

fig1

예제 2

입력
4 5 2
1 2 4
1 3 1
2 3 2
2 4 2
3 4 1
2
4
출력
3

제약 조건

  • $2 \le N \le 3000$: JOI 왕국의 마을의 개수.
  • $1 \le M \le 100000 = 10^5$: JOI 왕국의 도로의 개수.
  • $1 \le K \le N$: 쇼핑몰이 있는 마을의 개수.
  • $1 \le l_i \le 1000$: $i$번째 도로의 길이.

채점 기준

  • 채점용 데이터 중 배점의 $40\%$ 분량에 대해서는 $K = 1$을 만족한다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.