donghoon0709   3년 전

이진탐색 구현이 잘못된 것인지 잘 모르겠습니다..

반례가 있다면 알려주시면 감사하겠습니다.

azberjibiou   3년 전

코드가 잘못된 점이 2개 있습니다.

첫번째로 cut==n일 때에만 최대 길이의 후보로 하셨는데 자른 랜선의 개수가 n개 이상일 때도 괜찮다고 문제에서 나와있기 때문에 cut>=n으로 고쳐야 합니다.(27줄)

두번째로 cur_length, low, high를 int형으로 하셨는데 랜선 길이 범위가 정확히 int의 범위에 있기 때문에 32줄에서 오버플로우가 날 가능성이 있습니다. 그리고 24줄에서 cut가 int형 범위를 벗어날 수 있기 때문에 오버플로우가 생길 수 있습니다.

그래서 고쳐야 할 점은

27줄의 cut>=n으로 고치기

low, high, cur_length를 long long으로 고치기

cnt를 long long으로 고치기가 있습니다.

그리고 long long 출력할 때에는 %lld로 바꾸는 거 잊지 마세요~

donghoon0709   3년 전

감사합니다..! 고민 많이 하고 있었는데 문제를 더 꼼꼼히 읽어야겠습니다!

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