Supongamos que definimos una matriz infinita M
, en N^2 -> {0, 1}
(donde N
comienza en 1
lugar de 0
) de esta manera:
M(1, 1)
=0
.Para cada
x > 1
,M(x, 1)
=1
six
es primo, y de lo0
contrario.Para cada
y > 1
,M(1, y)
= ely
término th en elThue-Morse sequence
.Por cada
x, y > 1
,M(x, y)
=M(x, y-1) + M(x-1, y) mod 2
.
La 16x16
sección superior izquierda de esta matriz se ve (con x
ser filas y y
columnas):
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
Su tarea es crear un programa que evalúe el valor de una entrada arbitraria en esta matriz con la mayor precisión posible.
Su programa tomará dos enteros x
y y
como entrada, en cualquier forma que elija, y devolverá M(x, y)
, que será 0
o 1
.
Su código puede estar escrito en cualquier idioma, pero no debe exceder los 64 kilobytes (65,536 bytes) de tamaño de código fuente o 2 MB (2,097,152 bytes) de uso total de memoria. Su programa debe comenzar con memoria vacía (es decir, no puede cargar datos desde otro lugar) y ejecutarse independientemente para cada entrada (es decir, puede que no almacene datos comunes para múltiples ejecuciones). Su programa también debe poder evaluar todas las entradas en el 8192x8192
cuadro superior izquierdo en un período de tiempo razonable.
El programa que evalúa correctamente la mayor cantidad de entradas en el 8192 x 8192
cuadro superior izquierdo será el ganador, con un código más corto que actúa como un desempate.