задача
Если дано представление линии, выведите количество квадрантов , через которые проходит эта линия.
Допустимые представления линии
Вы можете представить линию как
- Три целых числа со знаком
A
,B
иC
которые не имеют общего множителя, а также гдеA
иB
не равны нулю, представляя строкуAx + By = C
, - Четыре целых числа , , и , представляя линию , проходящую через точку и , или
X1
Y1
X2
Y2
(X1, Y1)
(X2, Y2)
- Тип данных, который описывает строку, если она есть в вашем языке (она должна поддерживать вертикальные линии).
Вы не можете принимать входные данные в любом формате, который не допускает вертикальную линию (например, форма перехвата с уклоном). Если вы решите принимать целые числа в качестве входных данных, вы можете предположить, что они лежат в включающем диапазоне [-127, 128]
.
Характеристики
- Выходными данными всегда будут 0, 2 или 3 (строка никогда не может проходить через все четыре квадранта и не может проходить только через один).
- Считается, что линия на оси не проходит через какие-либо квадранты. Считается, что линия через начало координат проходит только через 2 квадранта.
- Вам не нужно возвращать, через какие квадранты они проходят (хотя в тестовых примерах они приведены для ясности).
- Это код-гольф , поэтому выигрывает самый короткий действительный ответ (измеряется в байтах).
Тестовые случаи
Вам придется конвертировать их в подходящий формат, прежде чем использовать их.
1x + 1y = 1 -> 3 (quadrants I, II, and IV)
-2x + 3y = 1 -> 3 (quadrants I, II, and III)
2x + -3y = 0 -> 2 (quadrants III and I)
1x + 1y = 0 -> 2 (quadrants II and IV)
3x + 0y = 6 -> 2 (quadrants I and IV)
-3x + 0y = 5 -> 2 (quadrants II and III)
0x + -8y = 4 -> 2 (quadrants III and IV)
0x + 1y = 0 -> 0 (lies on the x-axis)
1x + 0y = 0 -> 0 (lies on the y-axis)