ответ: 16
1-й
Переводим 191 в двоичную систему:
Выполняем команды:
1. 10111111 -> 01011111
1. 01011111 -> 00101111
2. 00101111 + 100 = 00110011
1. 00110011 -> 00011001
1. 00011001 -> 00001100
2. 00001100 + 100 = 00010000
Переводим результат в десятичную систему:
2-й
Сдвиг на один разряд вправо в двоичной системе означает целочисельное деление на 2 (остаток отбрасываем). Выполняем команды:
1. 191 : 2 --> 95
1. 95 : 2 --> 47
2. 47 + 4 = 51
1. 51 : 2 --> 25
1. 25 : 2 --> 12
2. 12 + 4 = 16
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)
# это пояснение кода, не участвующее в программе
1) Сдвинь вправо (->)
2) Прибавь 100₂ (+100)
191₁₀=10111111₂
Если считать все числа целыми, то:
10111111 -> = 1011111
1011111 -> = 101111
101111 + 100 = 110011
110011 -> = 11001
11001 -> = 1100
1100 + 100 = 10000
10000₂ = 16₁₀