가장 좋은 목초지
면접 대비시간 제한1초메모리 제한128 MB
가중 무방향 그래프와 좋아하는 정점 집합이 주어질 때, 모든 좋아하는 정점까지의 최단 거리 평균이 가장 작은 정점을 찾고, 동점이면 번호가 가장 작은 정점을 출력한다.
문제
베시(Bessie)는 언제나 자신의 생활을 최적화하고 싶어 하며, 존 아저씨(Farmer John)의 농장을 이루는 개의 목초지(, 편의상 번부터 번까지 번호가 붙어 있습니다) 가운데 자신이 좋아하는 개의 목초지 (, )를 방문하는 것을 특히 즐긴다는 사실을 깨달았습니다.
농장에는 여러 목초지를 잇는 양방향 소길이 개(, 편의상 번부터 번까지 번호가 붙어 있습니다) 있으며, 이 길들을 이용하면 농장의 어떤 목초지로도 갈 수 있습니다. 번째 소길은 두 끝점 와 (, )를 연결하고, 어느 방향으로 지나가든 통과하는 데 ()의 시간이 걸립니다.
베시는 잠에서 깨어났을 때 자신이 좋아하는 개의 목초지까지 이동하는 평균 시간이 최소가 되도록, 잠을 잘 가장 좋은 목초지의 번호를 찾고 싶어 합니다.
아래 지도는 예시 농장을 나타냅니다. 번호 옆에 별표 *가 붙은 목초지가 베시가 좋아하는 목초지이고, 대괄호 [] 안의 숫자는 그 소길을 지나는 데 걸리는 시간입니다.
1*--[4]--2--[2]--3
| |
[3] [4]
| |
4--[3]--5--[1]---6---[6]---7--[7]--8*
| | | |
[3] [2] [1] [3]
| | | |
13* 9--[3]--10*--[1]--11*--[3]--12*
다음 표는 후보 목초지 가 각각 "가장 좋은 목초지"일 때, 좋아하는 목초지들까지의 거리와 그 평균을 보여 줍니다.
* * * * * * Favorites * * * * * *
Potential Pasture Pasture Pasture Pasture Pasture Pasture Average
Best Pasture 1 8 10 11 12 13 Distance
------------ -- -- -- -- -- -- -----------
4 7 16 5 6 9 3 46/6 = 7.67
5 10 13 2 3 6 6 40/6 = 6.67
6 11 12 1 2 5 7 38/6 = 6.33
7 16 7 4 3 6 12 48/6 = 8.00
9 12 14 3 4 7 8 48/6 = 8.00
10 12 11 0 1 4 8 36/6 = 6.00 ** BEST
11 13 10 1 0 3 9 36/6 = 6.00
12 16 13 4 3 0 12 48/6 = 8.00
이 후보들이 실제로 가장 좋은 선택지라고 할 때(프로그램은 모든 목초지를 어떤 방식으로든 확인해야 합니다), 잠자기에 가장 좋은 곳은 평균 거리가 가장 작은 번 목초지입니다.
입력
- 첫째 줄: 세 정수 , , 가 공백으로 구분되어 주어집니다.
- 다음 개의 줄: 각 줄에 베시가 좋아하는 목초지의 번호 가 하나씩 주어집니다.
- 그다음 개의 줄: 각 줄에 소길 하나를 나타내는 세 정수 , , 가 공백으로 구분되어 주어집니다.
출력
- 잠자기에 가장 좋은 목초지의 번호를 한 줄에 정수 하나로 출력합니다. 가장 좋은 목초지가 여러 개라면 그중 번호가 가장 작은 것을 출력합니다.