이문제를 읽어보면, 단순히 g와 h를 지나간것이아니라, 주어진 g와 h사이를 잇는 도로를 지나간 것입니다.
dijkstra(g);
GH = visit[h];
Gtmp = visit[tmp];
dijkstra(h);
Htmp = visit[tmp];
HG = visit[g];
이부분에서 만약 g와 h를 잇는 직통 도로보다 더 짧은 경로가 존재한다면 오답이 나오지 않을까 싶네요!
간선들을 받으면서 g와 h를 잇는 간선의 길이를 저장해놓았다가 사용하면 될듯합니다.
jsi6452 2년 전
예제는 맞는데 어디서 틀린건지 도저히 모르겠습니다.
g->h를 거쳐 목적지로 가는 최단거리 ,h->g를 거쳐 목적지로 가는 최단거리가
s->목적지로 가는 최단거리와 같다면, 해당 후보군을 출력하는 형태로 코드를 짰는데,
왜 안되는지 모르겠네요,
s->목적지 == s->g->h->목적지 || s->목적지 == s->h->g->목적지
면 후보군을 출력하는건데
예외 케이스가 뭘까요 뭘 실수한걸까요 미치겠네요