Este desafío está inspirado en esta aplicación . Los casos de prueba están tomados de esa aplicación.
Este es un desafío de código más rápido , donde el objetivo es resolver los casos de prueba más grandes en la menor cantidad de tiempo. Se proporcionan algunos casos de prueba más pequeños, para que las personas puedan probar sus algoritmos más rápido.
Se le dará una cuadrícula de entrada cuadrada, de dimensiones n-por-n donde 9 <= n <= 12 . Esta cuadrícula se dividirá en n áreas, donde las celdas de cada área tienen identificadores únicos (usaré letras minúsculas de al en el texto aquí, pero puede elegir lo que quiera, por ejemplo, números enteros 1-12 ) .
La entrada puede verse así (formato de entrada opcional):
aabbbbbcc
adddbbbcc
adeeecccc
adddefgcc
hhhdifggg
hdddifffg
hhhiifffg
hihiifffg
iiiiiiggg
O, más fácil de visualizar:
Desafío:
Debe colocar 2 * n árboles en este parque, de acuerdo con las siguientes reglas:
- Habrá exactamente 2 árboles por columna y 2 árboles por fila
- Todas las áreas deben tener exactamente 2 árboles.
- Ningún árbol puede ser adyacente a otro árbol, vertical, horizontal o diagonal
La solución al diseño anterior es:
Nota: solo hay una solución para cada rompecabezas
Reglas adicionales:
- Los formatos de entrada y salida son opcionales.
- El resultado podría ser, por ejemplo, una lista de índices, una cuadrícula con 1/0 que indica si hay un árbol en esa posición, o una versión modificada de la entrada donde se indican los árboles
- El tiempo de ejecución debe ser determinista.
- El programa debe terminar dentro de 1 minuto en la computadora de @ isaacg
- Especificaciones: 4 CPU, CPU i5-4300U a 1.9 GHz, 7.5G de RAM.
- En caso de que su programa no pueda resolver los dos casos de prueba más grandes en un minuto cada uno, entonces el tiempo para el segundo más grande ( n = 11 ) será su puntaje. Perderá contra una solución que resuelva el caso más grande.
Casos de prueba:
Podría editar esta lista si los envíos parecen estar personalizados para adaptarse a estos casos de prueba.
12 por 12 :
--- Input ---
aaaaabccccdd
aaaaabccccdd
aaaaabbbbddd
eeeafffgbghh
eeaafffgbghh
eefffffggghh
eeefijffghhh
iieiijjjjkhh
iiiiijjjjkhk
lljjjjjjjkkk
llllllkkkkkk
llllllkkkkkk
--- Solution ---
aaaaabcccCdD
aaaaaBcCccdd
aAaaabbbbdDd
eeeaffFgBghh
eeAaFffgbghh
eefffffGgGhh
EeefijffghhH
iiEiIjjjjkhh
IiiiijjjjkHk
lljJjJjjjkkk
lLllllkkKkkk
lllLllKkkkkk
11 por 11 :
--- Input ---
aaaaaaabbcc
adddabbbbcc
edddbbbbbbc
eddddbbbbbb
effffggghhh
effffgghhii
eefffjjhhii
eeeejjjhhii
eeejjjjkiii
jjjjjjkkiii
jjjjjkkkiii
--- Solution ---
aaAaaaabbCc
adddAbBbbcc
eDddbbbbbbC
eddDdBbbbbb
effffggGhHh
eFfffGghhii
eefFfjjhHii
EeeejjjhhiI
eeEjjjjKiii
JjjjJjkkiii
jjjjjkKkIii
10 por 10
--- Input ---
aaaaabccdd
aeaabbbccd
aeaabfbgcd
eeeaafggcd
eeeaafghcd
eeeiifghcd
ieiiigghcd
iiijighhcd
jjjjighhcd
jjjggghhdd
--- Solution ---
aaAaabccdD
aeaaBbBccd
aEaabfbgcD
eeeaaFgGcd
eEeAafghcd
eeeiiFghCd
IeiIigghcd
iiijigHhCd
JjJjighhcd
jjjgGghHdd
9 por 9
--- Input ---
aabbbbbcc
adddbbbcc
adeeecccc
adddefgcc
hhhdifggg
hdddifffg
hhhiifffg
hihiifffg
iiiiiiggg
--- Solution ---
aAbBbbbcc
adddbbBcC
adEeEcccc
AdddefgCc
hhhDiFggg
hDddifffG
hhhiIfFfg
HiHiifffg
iiiiiIgGg
--- Input ---
aaabbbccc
aaaabbccc
aaaddbcce
ffddddcce
ffffddeee
fgffdheee
fggfhhhee
iggggheee
iiigggggg
--- Solution ---
aaAbBbccc
AaaabbcCc
aaaDdBcce
fFddddcCe
fffFdDeee
fGffdheeE
fggfHhHee
IggggheeE
iiIgggGgg
There shall be exactly 2 trees per column, and 2 trees per row
por lo que una fuerza bruta es probablemente imposible.