귀경길 교통상황을 알려드립니다
시간 제한1초메모리 제한512 MB
나무 모양 도로망에서 모든 차가 1번 지점을 거쳐 빠져나가는 데 걸리는 최소 시간을 구합니다.
문제
정현이가 사는 나라에는 각 지역을 잇는 도로망이 있다. 도로망은 개의 지점과 두 지점을 잇는 개의 양방향 도로로 이루어져 있으며, 임의의 두 지점 사이를 도로망을 따라 이동할 수 있다. 한 지점에는 도로망을 이용하는 차량이 최대 대까지 있을 수 있다.
추석 연휴가 끝나고 많은 차량이 도로망을 따라 집으로 돌아가고 있다. 번 지점에는 도로망을 빠져나가 집으로 갈 수 있는 톨게이트가 있고, 모든 차량은 도로망을 빠져나가기 위해 번 지점으로 향한다.
분이 지날 때마다 각 차량은 다음 세 가지 행동 중 하나를 한다.
- 이동하지 않고 대기한다.
- 자신이 번 지점에 있다면 톨게이트로 도로망을 빠져나간다.
- 자신이 있는 지점과 인접한 다른 지점으로 이동한다. 단, 각 지점에는 차량이 최대 대까지만 있을 수 있으므로, 그 지점에서 대기하는 차량이 있거나 다른 지점에서 그 지점으로 이동하는 차량이 있으면 그 지점으로 이동할 수 없다.
차량이 많아지면서 교통체증이 심해지고 있다. 귀경길 도로 위에서 몇 시간째 갇혀 있는 정현이는 차량들이 최적으로 움직일 때, 모든 차량이 도로망을 빠져나가는 데 몇 분이 걸리는지 궁금해졌다.
도로망의 구성과 분에 차량들이 있는 위치가 주어졌을 때, 정현이의 궁금증을 해결하는 프로그램을 작성하시오.
입력
첫째 줄에 도로망의 지점 수 이 주어진다. ()
둘째 줄부터 개의 줄에 걸쳐 도로의 두 지점 , 가 한 줄에 하나씩 주어진다. 이는 번 지점과 번 지점을 잇는 도로가 있다는 뜻이다. (, , )
번째 줄에는 번 지점부터 번 지점까지 차량이 있는지를 나타내는 정수 가 공백으로 구분되어 주어진다. 번 지점에 차량이 있으면 는 이고, 없으면 이다.
도로망에 차량이 적어도 한 대 있음이 보장된다.
출력
첫째 줄에 차량들이 최적으로 행동할 때, 모든 차량이 도로망을 빠져나가는 데 걸리는 시간을 출력한다.