Este problema (ver más abajo) se ha dado como un desafío de golf de código de la liga de programación de la escuela secundaria. Los códigos más cortos enviados durante el concurso fueron: 177 bytes en Ruby, 212 bytes en Python 2.5, 265 bytes en C. ¿Alguien puede acortarlo? Otros lenguajes de programación también están permitidos.
Formulación del problema : dados 8 enteros: -1000 <x1, y1, x2, y2, x3, y3, x4, y4 <1000. Comprueba cuál es la forma de la intersección de dos rectángulos alineados a los ejes: P1 = (x1, y1) , (x1, y2), (x2, y2), (x2, y1) y P2 = (x3, y3), (x3, y4), (x4, y4), (x4, y3).
* If the rectangles do not intersect print *nothing*.
* If there is exactly one point in common print *point*.
* If the intersections of P1 and P2 is a line segment print *line*.
* If they have a rectangular area in common print *rectangle*.
Especificación de datos de entrada : La primera línea contiene el número de casos de prueba t (1 <= t <1000). Cada una de las siguientes líneas t contiene 8 enteros: x1, y1, x2, y2, x3, y3, x4, y4 (el área de ambos rectángulos es mayor que 0).
Puedes probar tu solución aquí .
Respuestas:
Python, 200 caracteres
f
devoluciones:fuente
OCaml, 265 caracteres
Utiliza (abusa) el hecho de que compare devuelve 0, 1 o -1. Esto no está garantizado de acuerdo con su documentación, pero es cierto con OCaml 3.10.1.
fuente