Dados dos enteros positivos X e Y, emite cualquier combinación de los siguientes tres animales de arte ASCII de manera que la salida contenga exactamente X comas ( ,
) e Y puntos ( .
), si es posible.
Koala: 1 coma, 2 períodos
<.,.>
Cangrejo: 2 comas, 2 puntos
,<..>,
Commapillar: 3 o más comas, 1 punto
<,,,.>
o
<,,,,.>
o<,,,,,.>
o<,,,,,,.>
o<,,,,,,,.>
etc.
Si ninguna combinación de estos animales puede producir exactamente comas X y periodos Y, genere un solo commaleón que camuflará la falla:
~<.,,>~~
Los animales de salida pueden estar en cualquier cantidad y en cualquier orden. Pueden estar en una cadena, espacio o nueva línea separados, o bien en una lista donde cada animal es un elemento.
Por ejemplo, para X = 7, Y = 5, todas estas serían salidas válidas (separadas por líneas vacías):
<.,.> <.,.> <,,,,,.>
<.,.>
<,,,,,.>
<.,.>
,<..>, <.,.> <,,,,.>
<,,,,.>
,<..>,
<.,.>
,<..>, <,,,.> ,<..>,
[",<..>,", ",<..>,", "<,,,.>"] (list syntax depends on language)
Tenga en cuenta que (al menos en este ejemplo) hay varios conjuntos de animales que pueden funcionar. Pero recuerde que solo necesita generar una solución válida, si existe. El número de animales o el número de animales distintos no importa.
Para entradas como X = 3, Y = 3 o X = 1, Y = 5 donde no hay solución, la salida siempre será
~<.,,>~~
tal vez en una lista de un solo elemento.
El código más corto en bytes gana.
fuente
__int128
y era demasiado flojo para usar una biblioteca bignum. Aquí está el volcado CSV: pastebin.com/ght5xkRu la primera fila y la columna son los valores X e YRespuestas:
Rubí, 139 bytes
Función lambda, toma x e y como argumentos y devuelve una cadena
Si existe una solución, se puede hacer con todos los koalas + commapillars o todos los koalas + cangrejos.
El principio es usar un mínimo de commapillars. Si el número es impar, usamos 1 commapillar. si incluso usamos 0 commapillars, a menos que haya más comas que puntos, en cuyo caso usamos 2.
El número de períodos utilizados en los no mapeadores (cangrejos + koalas) es necesariamente par, y el número de no mapeadores es la mitad
(number of periods)-(number of commapillars)
. Si no hay comas suficientes para todos los koalas, o demasiados para todos los cangrejos, no hay solución posible. De lo contrario, devolvemos una solución.Comentó en el programa de prueba
usa "falla" en lugar de camaleón para mayor claridad
Salida
fuente
Befunge,
249218 bytesPruébalo en línea!
Esto ahora se basa en el algoritmo en la respuesta Ruby de Level River St , que proporcionó un mayor alcance para el golf y una reducción significativa en el tamaño en comparación con mi solución original.
fuente
C # 6,
321303bytesLlamada
F()
. Las otras dos funciones son ayudantes. demo de repl.itfuente