각 도시에서 나가는 길과 들어오는 길이 최대 두 개인 방향 그래프에서 모든 도시를 한 번씩 도는 최단 투어 길이를 구합니다.
어려움8백트래킹그래프아직 제출이 없습니다시간 제한2초메모리 제한256 MB투르 드 프랑스 조직위원회는 선정한 프랑스 도시를 모두 지나는 가장 짧은 경로를 원한다. 이 경로는 순회 경로여야 한다. 한 도시에서 출발해 나머지 도시를 각각 정확히 한 번씩 방문하고 출발한 도시로 돌아오며, 각 구간은 앞 구간이 끝난 도시에서 시작한다.
임의의 도로망에서 최단 순회 경로를 찾는 문제는 외판원 문제이고, 계획한 구간 수는 그 방법으로 감당하기에 너무 많다. 그래서 조직위원회가 조건을 하나 걸었다. 각 도시는 목적지 후보로 다른 도시를 최대 두 곳만 내놓고, 각 도시는 최대 두 도시에서 들어오는 경로만 받아 준다. 그래프로 옮기면 도로망은 모든 정점의 나가는 차수가 2 이하이고 들어오는 차수도 2 이하인 방향 그래프다.
도로는 일방통행이다. 도시 a에서 도시 b로 가는 도로가 있다고 해서 반대 방향 도로가 있는 것은 아니고, 양쪽 다 있더라도 길이는 서로 다를 수 있다.
이런 그래프가 주어질 때 모든 도시를 정확히 한 번씩 지나 출발 도시로 돌아오는 가장 짧은 순회 경로의 길이를 구하라.
첫 줄에 테스트 케이스의 개수 T가 주어진다 (1≤T≤50). 각 테스트 케이스는 다음과 같은 형식이다.
같은 순서쌍 (a,b)에 대한 도로는 최대 한 번만 주어지지만, 반대 방향인 b에서 a로 가는 도로가 다른 길이로 함께 주어지기도 한다. 한 도시에서 나가는 도로는 최대 두 개이고, 한 도시로 들어오는 도로도 최대 두 개다. 모든 테스트 케이스에는 순회 경로가 적어도 하나 존재한다.
각 테스트 케이스마다 N개 도시를 모두 지나는 최단 순회 경로의 길이를 한 줄에 출력한다.