Inclusión-Exclusión le permite calcular los tamaños de algunas uniones e intersecciones entre conjuntos conociendo algunos de los otros valores. No lo explicaré exactamente, pero su desafío es visualizar la inclusión-exclusión en un diagrama de Venn.
Como soy amable, usarás rectángulos, no círculos.
Se le dará una lista de rectángulos indicados por las coordenadas de la esquina superior izquierda e inferior derecha en cualquier formato razonable (lista de 4 tuplas, lista de pares de pares, lista de pares, etc.). Puede suponer que todas las coordenadas no son negativas y están dentro del rango de números (razonable) de su idioma (especifique qué es si es menor que 128). Puede elegir ser inclusivo a la izquierda o exclusivo a la izquierda e inclusivo a la derecha o exclusivo a la derecha. Independientemente del formato elegido, puede asumir que todos los rectángulos son al menos 1x1.
Luego, debe dibujar cada rectángulo en la pantalla (lienzo ASCII) utilizando un único carácter que no sea un espacio en blanco k, que puede elegir.
Sin embargo, cada vez que se superpongan dos rectángulos, el área superpuesta se dibujará con otro carácter que no sea un espacio en blanco l != k, también el suyo para elegir.
Siempre que tres rectángulos se superponen, el área de superposición debe ser dibujado con k, y por un número impar de rectángulos que cubre, ky un número par, l.
El fondo debe ser espacios en blanco individuales ( 0x20).
Casos de prueba ( k = "#", l = ".")
0 0 9 9
1 1 10 10
2 2 11 11
#########
#........#
#.#######.#
#.#######.#
#.#######.#
#.#######.#
#.#######.#
#.#######.#
#.#######.#
#........#
#########
1 1 3 3
2 2 4 4
##
#.#
##
1 1 9 9
2 2 8 8
3 3 7 7
########
#......#
#.####.#
#.####.#
#.####.#
#.####.#
#......#
########
Notas
- Los espacios iniciales y las nuevas líneas (que ocurren si la coordenada mínima no lo está
0, 0) deben estar presentes - Todos los espacios finales y las nuevas líneas están permitidos en un grado razonable (es decir, no sigas como 100000000 nuevas líneas, eso es molesto)
- los ejes x e y pueden estar orientados en ambos sentidos, pero debe ser coherente y especificar cuál (el valor predeterminado es x-right e y- down)
- Las coordenadas pueden ser 0-, 1- o 2- indexadas.
Implementación de protones de referencia
Este es el código de golf , por lo que el objetivo es tener el código más corto. ¡Feliz golf!