stlee   2년 전

I의 최대 값은 300이기 때문에,

300x300의 visit 테이블을 만들었는데요

자꾸 틀리더라고요.

그래서 301x301로 바꾸었더니 통과가 되었습니다.

주어지는 위치도 {0, ... , I-1} x {0, ... , I-1}이라서

300x300으로 잡아도 오류가 안나야 할 것 같은데

이상하네요...

혹시 위치가 I 로 주어지는 경우도 있는걸까요?

djm03178   2년 전

301로 된 이 코드 그대로 내도 틀립니다.

stlee   2년 전

아 이 코드는 Clang(C++17)로 내셔야 합니다...

djm03178   2년 전

저도 질문자님의 제출 현황을 보고 C++17 (Clang)으로 냈는데 틀렸습니다. 사실 그건 49번째 줄 때문인데, 왜 그게 들어갔는지는 모르겠지만 질문을 올리실 때에는 제출했던 코드를 그대로 올려주셔야 합니다.

일단 그걸 지워도 300으로 했을 때 틀리는 걸 보긴 했습니다.

djm03178   2년 전

전혀 관계 없어보이지만, 놀랍게도 문제는 28번째 줄입니다. 큐에 들어있는 원소를 참조자로 받아올 경우 pop을 하는 순간 변수가 사라지기 때문에 더 이상 사용할 수 없는 상태가 되고, 이 값을 사용하는 것은 undefined behavior가 됩니다. 참조자만 지워주면 300으로 해도 맞습니다.

stlee   2년 전

죄송합니다 ㅜㅜ 복사하다가 return 0;이 잘못들어갔네요;

통과된 소스입니다.

stlee   2년 전

와... 정말 그렇네요

정말 생각지도 못한 부분이었습니다.

이걸 발견하신게 정말 대단한것같네요...

감사합니다!!!!

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