1000000 1000000 1
0
을 입력하니 ned[0]에 쓰레기 값이 들어가네요. 29번째 줄을 약간 수정하니 제대로 답이 들어갑니다.
1493번 - 박스 채우기
감사합니다!
다시 확인해보니 31~37 까지 재귀호출 부분의 로직에 문제가 있었네요
fill(x % (1 << i), (y / (1 << i))*(1 << i), (z / (1 << i))*(1 << i));
fill(z % (1 << i), (x / (1 << i))*(1 << i), (y / (1 << i))*(1 << i));
fill(y % (1 << i), (x / (1 << i))*(1 << i), (z / (1 << i))*(1 << i));
fill(y % (1 << i), z % (1 << i), (x / (1 << i))*(1 << i));
fill(x % (1 << i), z % (1 << i), (y / (1 << i))*(1 << i));
fill(x % (1 << i), y % (1 << i), (z / (1 << i))*(1 << i));
fill(y % (1 << i), z % (1 << i), x % (1 << i));
이렇게 하니까 답이 나오네요
덕분에 두달전의 복수(?)를 할 수 있었습니다. 감사합니당~!
댓글을 작성하려면 로그인해야 합니다.
wxogus25 6년 전
가로, 세로, 높이중 가장 작은것을 찾은 다음, 그 길이의 최상위 비트를 구해
그 크기만큼의 박스로 채울 수 있는 최대한의 부피를 채웁니다. (27 ~ 29)
그 후, 남은 부피를 7등분해 재귀호출하는 방식으로 fill 함수를 만들었습니다.
메인 함수 부분은 상자를 채울 수 있는 최소한의 박스 수를 구하면서
주어진 박스로 상자를 채울 수 있는지 없는지 검사합니다.
예제도 잘 통과했는데 어디서 틀린걸까요??