Разделите первый квадрант (включая положительную ось x, положительную ось y и начало координат) на сетки 1x1, где каждая сетка помечена координатами ее нижнего левого угла, как показано ниже:
Обратите внимание, что каждая сетка содержит свои границы и вершины. Используя математические символы, сетка с меткой (m, n) будет представлять квадрат {(x,y) | m ≤ x ≤ m+1, n ≤ y ≤ n+1}
.
Для данной прямой линии в виде ax+by+c=0
целых чисел a
, b
и c
и сетки, представленной как (m,n)
, выведите, проходит ли линия через сетку, т.е. находится ли какая-либо точка в данной сетке на линии.
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
Пожалуйста, предложите больше тестов в комментариях.
Это код-гольф . Кратчайший ответ в байтах побеждает. Применяются стандартные лазейки .
[a, b, c]
(линия) и [m, n]
(квадрат)?