다익스트라 알고리즘, 인접 연결리스트를 이용한 그래프 표현 사용했습니다.

질문게시판에 모든 반례를 해봤는데 다 답은 나오는데 틀리네요..

1 -> v1 -> v2 -> N

1 -> v2 -> v1 -> N

두가지 경우 계산해서 하나라도 연결되지 않은 경로라면 -1을 반환하고 아니면 최솟값을 반환하게 하였습니다. 양방향 연결이므로 인접리스트에 둘다 추가해주었습니다.

혹시 오버플로때문인가 싶어서 long long 썻는데도 틀려서 뭐가 문제인지 1도 감이 안옵니다..

뭐가 문제인지 알려주시면 감사하겠습니다!!

bluejoyq   2년 전

반례 찾았습니다.

입력 : 

4 6
1 2 3
2 3 3
3 4 1
1 3 5
2 4 5
1 4 4
1 4

현재 출력 : 

런타임에러

v1이 1이거나 v2가 N인 경우가 고려되지 않은 것 같습니다.

pmn0001   2년 전

문제의 조건상 v1 이 1일 수 있고, v2 가 n일 수 있습니다.

@bluejoyq

혹시 컴파일 환경이 어떤지 알수 있을까요? 제 환경에서는 답이 4로 출력되는데 런타임에러가 나는 부분이 어딘지 잘 모르겠네요 ㅜㅜ

아 해결했습니다 ㅜㅜㅜㅜㅜ V1이 1이거나 V2가 N인경우도 다 고려했었는데 계속 틀려서 죽을맛이엇는데 설마 이게 문제인가 싶어서 고치니까 되네요 ㅜㅜ

ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);

위 코드로 fastio 쓰고 있었는데 옛날에 풀었다가 포기한 코드 복붙하다 보니 입력을 scanf로 받아서 cin,cout이랑 섞어쓰고있었네요... 이거 하나땜에 몇시간동안 삽질했네요 흑흑

댓글을 작성하려면 로그인해야 합니다.