Анализ алгоритма
В решении будем исходить из того, что .
Если , то произведение чисел будет положительным, выводим 1.
Если и , то среди множителей имеется 0, поэтому произведение чисел равно 0, выводим 0.
Если , то все множители отрицательны. Знак произведения определяется количеством отрицательных множителей. Если число множителей четно ( и имеют разную четность), то ответ 1. Иначе ответ -1.
Пример
В третьем примере произведение имеет вид:
Произведение содержит 7 отрицательных множителей. Числа и имеют одинаковую четность. Следовательно произведение отрицательно.
Реализация алгоритма
Читаем входные данные.
scanf("%d %d", &a, &b);
Если все множители положительны, то ответ 1.
if (a > 0) res = 1;
Если среди множителей есть 0, то ответ 0.
else if (a <= 0 && b >= 0) res = 0;
Если все множители отрицательны, то ответ определяется количеством множителей. Если число множителей четно ( и имеют разную четность), то ответ 1. Иначе ответ -1.
else { if ((b - a) % 2 == 0) res = -1; else res = 1; }
Выводим ответ.
printf("%d\n", res);
Java реализация
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int a = con.nextInt(); int b = con.nextInt(); int res; if (a > 0) res = 1; else if (a <= 0 && b >= 0) res = 0; else { if ((b - a) % 2 == 0) res = -1; else res = 1; } System.out.println(res); con.close(); } }
Python реализация
a, b = map(int, input().split()) if a > 0: res = 1 elif a <= 0 and b >= 0: res = 0 else: if (b - a) % 2 == 0: res = -1 else: res = 1 print(res)