nacean   3년 전

fill(dist[0], dist[100], INT_MAX);

for (int i = 1; i <= town; i++)

{

dist[i][i] = 0;

}

이부분을

for (int i = 1; i <= town; i++)
{
for (int j = 1; j <= town; j++)
{
if (i == j)
dist[i][j] = 0;
else
dist[i][j] = INT_MAX;
}
}

이렇게 바꾸니 맞다고 정답은 나왔는데

fill함수 사용법이 잘못 된건가요??

위 코드로 예제는 잘 나왔는데...

이것때문에 1시간동안 뻘짓했네요...

byeongkeunahn   3년 전

Off-by-one error입니다. dist[0]부터 dist[100]까지 fill()을 호출하면 dist[0][0], dist[0][1], ..., dist[99][0], ..., dist[99][100]까지 채워집니다.

-> Correct statement: fill(dist[0], dist[101], INT_MAX).

nacean   3년 전

아 감사합니다 ㅜㅜㅜㅜ 배열 크기를 잘못 생각했네요...

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