철수가 사는 동네에는 개의 공원이 있고, 각각 두 개의 서로 다른 공원을 양방향으로 연결하는 길들이 개 있다. 각 길의 길이를 알고 있다고 하자. 공원들은 부터 까지 번호가 붙어 있다.
철수는 현재 공원 에 있다. 철수는 서로 다른 두 개의 공원 와 공원 를 정해서 공원 에서 공원 로, 공원 에서 공원 로, 다시 공원 에서 공원 로 돌아오려고 한다. 모든 과정에서 전체 이동 거리가 가장 작도록 이동한다. 단, 와 는 서로 같지 않고, 와 도 서로 같지 않다.
위의 과정에서 같은 공원을 여러 번 지나는 것은 허용되지만, 중간에 공원 를 지나는 것은 허용되지 않는다.
가능한 와 를 정하는 모든 방법에 대해서 전체 이동 거리가 가장 짧은 것을 찾아 그 길이를 출력하는 프로그램을 작성하시오.
아래 그림은 입력 예제의 경우를 보여 준다. , 으로 정하면 총 의 거리를 이동하여 위의 조건을 만족할 수 있다.
첫 줄에 공원의 수와 길의 수, 현재 공원의 번호를 나타내는 세 정수 , , 가 공백으로 구분되어 주어진다. ( )
이어지는 개의 줄의 각 줄에 길의 정보를 나타내는 세 정수 , , 가 공백으로 구분되어 주어진다. ( )
이는 공원 와 공원 사이를 양방향으로 연결하는 길이 인 길이 존재함을 의미한다.
답이 불가능한 경우는 입력으로 주어지지 않는다.
첫 줄에 답이 되는 정수를 출력한다.
6 10 5 1 4 2 2 1 2 4 6 10 1 4 4 4 3 8 4 5 9 3 4 9 5 6 3 3 6 2 1 4 1
10
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 32점
종류 2: 24점
종류 3: 44점
추가적인 제한 조건이 없음.