우리는 무한 행렬을 정의한다고 가정 M
에서, N^2 -> {0, 1}
(단 N
에서 시작 1
하는 대신 0
) 이와 같이 :
M(1, 1)
=0
.모든를 들어
x > 1
,M(x, 1)
=1
경우는x
프라임이고0
, 그렇지 않으면.모든를 들어
y > 1
,M(1, y)
=y
에서 일 용어Thue-Morse sequence
.모든 들어
x, y > 1
,M(x, y)
=M(x, y-1) + M(x-1, y) mod 2
.
16x16
이 행렬의 왼쪽 상단 부분은 다음과 같습니다 ( x
행 및 y
열).
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0
1 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1
1 1 0 1 1 1 1 0 0 0 0 1 0 0 1 0
0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1
1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1
0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1
1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1
0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1
0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1
0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0
1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1
0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1
1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0
0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1
0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1
0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1
당신의 임무는 가능한 정확하게이 행렬의 임의 항목의 값을 평가할 프로그램을 만드는 것입니다.
여러분의 프로그램은 두 개의 정수 걸릴 것입니다 x
및 y
모든 당신이 선택하는 형태로, 대가로, 같은 입력 M(x, y)
이 될 것이다, 0
또는 1
.
코드는 모든 언어로 작성 될 수 있지만 소스 코드 크기의 64KB (65,536 바이트) 또는 총 메모리 사용량의 2MB (2,097,152 바이트)를 초과해서는 안됩니다. 프로그램은 빈 메모리로 시작해야하며 (즉, 다른 곳에서 데이터를로드 할 수 없음) 각 입력에 대해 독립적으로 실행해야합니다 (즉, 여러 실행에 대한 공통 데이터를 저장하지 못할 수 있음). 또한 프로그램은 왼쪽 상단의 모든 항목을 8192x8192
적절한 시간 안에 평가할 수 있어야합니다 .
왼쪽 상단 8192 x 8192
사각형 에서 가장 많은 항목을 정확하게 평가하는 프로그램이 승자가되고 짧은 코드는 타이 브레이커 역할을합니다.