Hay una red de hasta 26 nodos (nombre Ade Zo apara zsegún su deseo). Cada par de nodos puede estar conectado o desconectado. Un nodo puede estar conectado como máximo a otros 4 nodos. Su tarea es dibujar la red en un diagrama 2D. La entrada se dará de manera tal que esta tarea sea posible (ver más restricciones en la sección de salida).
Formato
Entrada
- Pares de letras ( 
AaZ, oaazsegún su deseo). No están ordenados en ningún orden. - Opcional - número de pares
 
Salida
- Un dibujo ASCII que muestra los enlaces reales entre los nodos. Los nodos están dados por 
atozoAtoZ. Úselo-para enlaces horizontales y|para enlaces verticales. Los enlaces pueden tener cualquier longitud (distinta de cero) pero deben ser líneas rectas horizontales / verticales que no se doblen . Se pueden agregar espacios siempre que no desfiguren la imagen. 
No puede usar elementos integrados que ayuden en el diseño del gráfico. Se pueden permitir otras funciones integradas relacionadas con gráficos (aunque las soluciones sin funciones integradas serían más apreciadas). El código más corto gana.
Data de muestra
Entrada
A B
B F
B L
F K
L K
K R
K S
R P
S J
S P
J A
T V
V N
Salida
A - B - F   T - V
|   |   |       |
|   L - K - R   N
|       |   |
J ----- S - P
Entrada
H C
G H
A B
B F
B C
F G
C D
D A
Salida
A - B ----- F
|   |       |
D - C - H - G
                
                    
                        code-golf
                                ascii-art
                                graph-theory
                                
                    
                    
                        fantasmas_en_el_código
fuente
                
                fuente

H Ay ese borde no está en la salida dada. Editar: problema identificado y solucionado.Respuestas:
CJam, 142
No solicitó una solución óptima, determinista o rápida, así que aquí tiene:
Pruébalo en línea
Esto genera coordenadas aleatorias para cada letra y prueba si el diseño es aceptable (letras de borde alineadas y sin intersecciones), hasta que lo sea. Se vuelve increíblemente lento a medida que agrega más bordes.
Las dos
Dletras en el código especifican las coordenadas máximas xey; ElegíD(= 13) porque creo que debería ser suficiente para todos los casos, no dudes en demostrarme que estoy equivocado. Pero puede cambiarlos a otros valores para acelerar el programa, por ejemplo, el segundo ejemplo debería terminar dentro de un minuto o dos si usa 3 y 4 en su lugar.fuente
C, 813 bytes
Toma datos como argumentos de la línea de comandos, por ejemplo:
¡Nada competitivo con la respuesta de aditsu por tamaño, pero mucho más eficiente!
Esto impondrá la fuerza bruta a todas las soluciones posibles, pero reconocerá rápidamente el fracaso a medida que avanza. Para los dos casos de prueba, finaliza casi de inmediato, y parece que solo toma unos segundos en entradas más incómodas. Tampoco tiene limitación para los nombres de nodo aceptados (aunque no puede nombrar un espacio,
|o-) y no tiene límite en el número de nodos (siempre que todos los nombres quepan en un byte, por lo que el límite práctico es 252 nodos, y se ralentizará mucho antes de llegar a tantos).Hay muchas posibilidades para acelerar esto; Se perdieron muchas salidas de cortocircuito en el golf, y hay partes que se pueden sacar de los circuitos calientes. Además, algunas observaciones de simetría pueden reducir drásticamente el posicionamiento de los primeros 2 nodos, entre otras cosas.
Descompostura:
fuente