Divida el primer cuadrante (incluido el eje x positivo, el eje y positivo y el origen) en cuadrículas de 1x1, con cada cuadrícula etiquetada por las coordenadas de su esquina inferior izquierda, como se muestra a continuación:
Tenga en cuenta que cada cuadrícula contiene sus límites y sus vértices. Usando símbolos matemáticos, la cuadrícula etiquetada (m, n) representaría el cuadrado {(x,y) | m ≤ x ≤ m+1, n ≤ y ≤ n+1}
.
Dada una línea recta en forma de ax+by+c=0
con enteros a
, b
y c
, y una cuadrícula representada por (m,n)
, indique si la línea pasa a través de la cuadrícula, es decir, si algún punto de la cuadrícula dada está en la línea.
a b c m n output
1 1 0 0 0 true
1 1 0 1 1 false
1 1 0 0 2 false
1 1 -3 0 1 true
1 1 -3 0 0 false
2 -1 0 1 1 true
2 -1 0 1 0 false
2 -1 0 0 2 true
2 -1 0 0 1 true
2 -1 0 1 2 true
2 0 -1 0 0 true
2 0 -1 0 1 true
2 0 -1 0 2 true
2 0 -1 1 0 false
2 0 -1 1 1 false
0 2 -1 0 0 true
0 2 -1 1 0 true
0 2 -1 2 0 true
0 2 -1 0 1 false
0 2 -1 1 1 false
1 0 -1 0 0 true
1 0 -1 0 1 true
1 0 -1 0 2 true
1 0 -1 1 0 true
1 0 -1 1 1 true
Por favor, sugiera más casos de prueba en los comentarios.
Este es el código de golf . La respuesta más corta en bytes gana. Se aplican lagunas estándar .
[a, b, c]
(la línea) y [m, n]
(el cuadrado)?