algorithm/Regress_Exam

BOJ 1848 동굴 탐험

아르비스 2017. 5. 12. 14:25

문제 

https://www.acmicpc.net/problem/1848


1번 동굴에서 시작해서 동굴을 탐색하고, 다시 1번으로 나오는 최단거리를 찾는 문제..


조건은 다음과 같다.


대회의 목표는 시작방에서 출발하여 동굴 내부를 달려, 다시 시작방으로 되돌아 와 빠져 나오는 것인데, 그 경로는 참가자가 마음대로 정할 수 있지만 두 가지 조건을 지켜야 한다. 

 첫째 조건은, 시작방 이외의 방을 최소한 하나는 거쳐야 한다는 것이며, 

 둘째 조건은, 어떤 방과 터널도 최대 한 번밖에 방문할 수 없다는 것이다. 

 (시작방은 물론 두 번 방문하게 되므로 예외이다.)


첫째 줄에 n과 m이 주어진다. (3≤n≤5000, 3≤m≤10000) 이는 각각 동굴 내부의 방의 개수와, 터널의 개수를 나타낸다.

  이어지는 m개의 줄에는 각각 터널의 정보를 제공하는 네 개의 숫자 a, b, c, d가 포함되어 있다. 이것은 a번 방에서 b번 방으로 갈 때는 c의 시간이 걸리고, 반대로 b번 방에서 a번 방으로 갈 때는 d의 시간이 걸린다는 의미이다. (1≤a, b≤n. a≠b. 1≤c, d≤10000)

  방의 번호는 1번부터 n번까지 연속하여 붙어 있으며, 1번 방이 시작방이다. 언제나 조건을 만족하는 경로가 하나는 있다고 가정해도 좋다.


샘플 예제에서는 


3 3
1 2 4 3
2 3 4 2
1 3 1 1


답이 6 이다.


즉 1 -> 2 -> 3 -> 1 로 나와야 한다.


문제의 조건대로라면 1->3->1 로 나오면 2로 최소가 된다. 하지만 이건 답이 아니다.


모든 방을 탐색하는 조건으로 하면 답이 틀리다고 나온다.



아~~ 뭐가 틀린거지?

계속 3번째 테스트 케이스에서 틀리다고 나온다..ㅠㅠ 된장