wider93   4년 전

관련한 문제로 17633번 문제가 있는데, 틀린 소스코드 그대로 붙여넣어서 17633번에 넣고 출력만 제한하면 AC를 받습니다.

한쪽 문제 데이터가 약한 것이 아니라면, 갯수는 맞지만 실제로 제곱합이 입력값이 되지 않거나 양수조건 등을 만족 안 한다는 뜻인데,

랜덤데이터들로 충분히 확인해본 것 같지만 반례가 나오지 않네요.

https://www.acmicpc.net/source/16454179

소스코드는 일단 공개하겠습니다만.. 답변 가능하신 분들이 이 글을 봐주실까요?


# 링크는 삭제했습니다.

sait2000   4년 전

백준 슬랙에 물어보시면 좀 더 답변받을 확률이 올라간다고 봅니다.

...그리고 틀린 이유랑은 관계 없는 것 같지만, 소수 판정이 틀렸습니다.

wider93   4년 전

아하 슬랙 쪽이 있군요...

소수 판정이 틀리면 문제가 있는 건 확실한데, 밀러 라빈이 부실해도 소수를 합성수로 내놓지는 않을 테니 다른 곳도 문제가 있겠군요.

답변 감사합니다.

wider93   4년 전

틀렸습니다를 받는 경우를 확인했습니다. n보다 작은 가장 큰 제곱수를 체크하는 중에 int(n**0.5)를 사용했는데 이게 float의 정확도를 벗어나서 문제가 생기는 것 같네요.

wider93   4년 전

해결되었습니다. 일단 오답은 float 때문에 생겼는데 다른 부분에도 두어 가지 사소한 문제가 더 있었네요.

정말 감사드립니다!

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