int1 = int(input())
int2 = int(input())
col1 = int(input())
col2 = int(input())
min1 = col1 + int1 * (col1 - 1 ) # Минимальное время которое она находились на платформе, согласно условиям 1 стороны платформы
max2 = col1 + int1 * (col1 + 1 ) # Максимальное время которое она находились на платформе, согласно условиям 1 стороны платформы
min1 = col2 + int2 * (col2 - 1 ) # Минимальное время которое она находились на платформе, согласно условиям 2 стороны платформы
max2 = col2 + int2 * (col2 + 1 ) # Максимальное время которое она находились на платформе, согласно условиям 2 стороны платформы
if min1 > min2 : # Находим общий минимум для обеих сторон плафтормы. Это максимальное из двух значений
totalmin = min1
else :
totalmin = min2
if max1 > max2 : # Находим общий максимум для обеих сторон плафтормы. Это минимальное из двух значений
totalmax = max2
else : # Важно помнить Минимум максимален и постепенно уменьшается. Максимум минимален и постепенно растет
totalmax = max1
if totalmin > totalmax : # Если Минимальное время больше чем максимальное, то , ошибка в подсчете, во всех других случаях интервал существует
print(-1)
else :
print(totalmin , totalmax)
# это пояснение кода, не участвующее в программе
PascalABC.NET
begin
// Последовательность целых чисел вводится с клавиатуры
// пока не будет введен 0 (который не войдет в нее).
// Затем последовательность преобразуется в массив (ToArray)
// нужного размера, который сохраняется с именем a
var a := ReadSeqIntegerWhile(p -> p <> 0).ToArray;
// Заведем счетчики для количества положительных kp и
// отрицательных kn элементов и обнулим их
var (kp, kn) := (0, 0);
// Просматриваем в цикле массив. На каждом шаге p будет обозначать
// очередной элемент массива
foreach var p in a do
if p > 0 then // если элемент положительный
kp += 1 // добавим 1 в счетчик положительных
else if p < 0 then // если элемент отрицательный
kn += 1; // добавим 1 в счетчик отрицательных
// Осталось вывести результаты
Writeln('Положительных чисел ', kp, ', отрицательных ', kn)
end.