모든 칸에 대한 블럭을 할당하신 것 같은데, N=15인 경우 약 10억 칸 정도가 나오고, 1바이트씩으로 계산해도 1GB에 이릅니다. 심지어, 할당 방법도 잘못됐습니다. 40번째 줄에서, block형이 size개만큼 할당되는 것이 아니라 block의 포인터를 size개만큼 할당하고 있으니 무려 8배나 더 할당됩니다.
이 문제에서는 나눠놓은 4군데를 모두 방문할 필요가 없습니다. 4분면의 어느 위치에 원하는 값이 있을지를 바로 알아내서 그 곳만 방문할 수 있습니다. blocks라는 배열을 만들 필요가 없는 것입니다.
alphago159 6년 전
어디서 메모리가 초과되는지 잘 모르겠습니다.