La matriz de Wythoff es una matriz infinita que consiste en los números Grundy de cada cuadrado en un tablero de ajedrez en el juego de Wythoff .
Cada entrada en esta matriz es igual al número no negativo más pequeño que no aparece en ninguna parte arriba, a la izquierda o en diagonal al noroeste de la posición de la entrada.
El cuadrado superior izquierdo de 20 por 20 se ve así:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
1 2 0 4 5 3 7 8 6 10 11 9 13 14 12 16 17 15 19 20
2 0 1 5 3 4 8 6 7 11 9 10 14 12 13 17 15 16 20 18
3 4 5 6 2 0 1 9 10 12 8 7 15 11 16 18 14 13 21 17
4 5 3 2 7 6 9 0 1 8 13 12 11 16 15 10 19 18 17 14
5 3 4 0 6 8 10 1 2 7 12 14 9 15 17 13 18 11 16 21
6 7 8 1 9 10 3 4 5 13 0 2 16 17 18 12 20 14 15 11
7 8 6 9 0 1 4 5 3 14 15 13 17 2 10 19 21 12 22 16
8 6 7 10 1 2 5 3 4 15 16 17 18 0 9 14 12 19 23 24
9 10 11 12 8 7 13 14 15 16 17 6 19 5 1 0 2 3 4 22
10 11 9 8 13 12 0 15 16 17 14 18 7 6 2 3 1 4 5 23
11 9 10 7 12 14 2 13 17 6 18 15 8 19 20 21 4 5 0 1
12 13 14 15 11 9 16 17 18 19 7 8 10 20 21 22 6 23 3 5
13 14 12 11 16 15 17 2 0 5 6 19 20 9 7 8 10 22 24 4
14 12 13 16 15 17 18 10 9 1 2 20 21 7 11 23 22 8 25 26
15 16 17 18 10 13 12 19 14 0 3 21 22 8 23 20 9 24 7 27
16 17 15 14 19 18 20 21 12 2 1 4 6 10 22 9 13 25 11 28
17 15 16 13 18 11 14 12 19 3 4 5 23 22 8 24 25 21 26 10
18 19 20 21 17 16 15 22 23 4 5 0 3 24 25 7 11 26 12 13
19 20 18 17 14 21 11 16 24 22 23 1 5 4 26 27 28 10 13 25
Actualmente no se conoce un algoritmo eficiente para calcular una entrada arbitraria en la matriz de Wythoff. Sin embargo, su tarea en este problema es tratar de diseñar una función heurística que indique si el número en una coordenada específica wythoff(x, y)
es par o impar.
Su programa no puede contener más de 64 KB (65,536 bytes) de código fuente, o usar más de 2 MB (2,097,152 bytes) de memoria de trabajo.
En particular para el uso de memoria, esto significa que el tamaño máximo de conjunto residente de su programa no puede exceder los 2 MB más que el tamaño máximo de conjunto residente de un programa vacío en ese idioma. En el caso de un lenguaje interpretado, sería el uso de la memoria del propio intérprete / máquina virtual, y en el caso de un lenguaje compilado, sería el uso de la memoria de un programa que ejecuta el método principal y no hace nada.
Su programa será probado en la 10000 x 10000
matriz para valores de fila en 20000 <= x <= 29999
y valores de columna en 20000 <= y <= 29999
.
El puntaje de su programa es la tasa de precisión (número de conjeturas correctas) que logra su programa, con un código más corto que actúa como un desempate.
01.R
es un 05AB1E que genera verdadero o falso al azar. Deje que 0 sea verdadero y 1 falso, teóricamente mi programa será correcto ~ 50% del tiempo. ¿Es esta una entrada válida?